【发布时间】:2019-11-08 22:05:03
【问题描述】:
我从几个栅格中获取频率,并且在 R-Markdown 中这样做。我正在使用lapply 从列表中的栅格中获取频率。当我将这些频率存储在 data.frames 列表中时,块输出会显示一些意外的非数字字符。
示例栅格:
```{r}
require(raster)
r1 <- setValues(raster(nrows = 10, ncols = 10), sample(1:10, 100, replace = TRUE))
r2 <- setValues(raster(nrows = 10, ncols = 10), sample(1:10, 100, replace = TRUE))
rList <- list(r1, r2)
```
获取频率:
```{r}
lapply(rList, function(ras) {
data.frame(freq(ras))
})
```
上述块的输出:
如果我只显示数据框本身,则不会显示这些字符:
```{r}
lapply(rList, function(ras) {
data.frame(freq(ras))
})[[2]]
```
如果不使用data.frame,也会显示正确的值:
```{r}
lapply(rList, function(ras) {
freq(ras)
})
```
我尝试使用 UTF-8 编码保存 Rmd,并且我使用的是 RStudio 1.2.5019。任何关于如何让数据框列表正确显示的想法都将不胜感激。
编辑:请注意,字符不会在生成的 html 文件中的任何场景中显示,仅在 R Notebook 文件本身的特定块中显示。
编辑 2:
生成奇怪字符的笔记本的完整代码和 YAML 标头如下:
---
title: "R Notebook"
output: html_notebook
---
```{r}
require(raster)
r1 <- setValues(raster(nrows = 10, ncols = 10), sample(1:10, 100, replace = TRUE))
r2 <- setValues(raster(nrows = 10, ncols = 10), sample(1:10, 100, replace = TRUE))
rList <- list(r1, r2)
```
```{r}
lapply(rList, function(ras) {
data.frame(freq(ras))
})
```
```{r}
lapply(rList, function(ras) {
data.frame(freq(ras))
})[[2]]
```
【问题讨论】:
-
你有一些花哨的表格格式。如果我用这些块制作一个普通的 .Rmd 文件,我会得到纯 R 代码输出,而不是带有列类型和下划线的斑马条纹表。除非这是默认的 RStudio 样式(我正在从 R 控制台进行测试),否则您能否提供带有标头等的完整 Rmd?
-
@Spacedman - 抱歉耽搁了,感谢您的回复。据我所知,这是 R Studio 中笔记本的默认输出,我没有对 yaml 标头或块设置进行任何更改。我已经包含了为我生成奇怪字符的完整笔记本代码。
-
我无法复制此问题。在 Win 10 和 Ubuntu Linux 上试过。我得到的是数字而不是上面显示的字符。
-
此处列出了类似的问题github.com/rstudio/rstudio/issues/3163
-
如果您还没有找到解决方案,请在此处报告您的问题。
标签: r r-markdown