【发布时间】:2020-01-06 14:34:21
【问题描述】:
我有一个包含 74 列的数据集,我正在尝试在 for 循环中为其中的每一列创建一个直方图。 在控制台中运行时,我的代码很好,但是当我尝试编织它时,R 说我的数据不是数字。有谁知道为什么?我也对绘制多个直方图的问题的其他解决方案持开放态度(将列名作为图上的标识符)。下面是我的问题的简化表示。
library(dplyr)
data2 <- data.frame(c(1,3,5,5,2,2,1,1,1,1),
c(2,4,2,3,4,5,1,2,3,3))
colnames(data2) <- c("A", "B")
for (cols in colnames(data2)) {
data2 %>% select(cols) %>% hist()
}
再次,逐行工作正常,但当我尝试编织时,我最终收到以下错误:
" hist.default(.) 中的错误:'x' 必须是数字调用:...freduce -> withVisible -> -> hist -> hist.default
执行停止”
有趣的是,这段代码编织得很好:
library(dplyr)
data2 <- data.frame(c(1,3,5,5,2,2,1,1,1,1),
c(2,4,2,3,4,5,1,2,3,3))
colnames(data2) <- c("A", "B")
hist(data2$A)
hist(data2$B)
【问题讨论】:
-
只是关于隔离问题的评论:这与
knitr无关,如果您在脚本或 Rmd 文档中运行 R 代码,则会遇到相同的错误。因为无论你是否使用 knitr 都存在问题,所以我删除了knitr标签和标题中的提及。