这可能是一个非常简单的问题。但我不知道如何解决它。 我有一个包含很多列的数据集,我想运行一个循环来为某些列创建直方图。我知道我可以使用列名称创建列表,但是有没有办法使用索引来代替?
请参阅下面使用 iris 数据集的示例和我得到的错误。
# Function to repeat histogram over multiple predictor variables
library(datasets)
data(iris)
vars=iris[1:3]
hist <- function(data, var){
p <-
data %>%
ggplot(aes(x = .data[[var]], group=1)) +
geom_histogram(bins = 10) +
theme_classic()
return(p)
}
## prints out the plots as in the loop
lapply(vars, FUN = hist, data = iris)
geom_histogram()
中的错误:
!计算美学时出现问题。
ℹ 第一层发生错误。
由.data[[<dbl: 5.1, 4.9, 4.7, 4.6, 5, ...>]]
中的错误引起:
!必须使用字符串而不是双向量对数据代词进行子集化。
谢谢@Gregor Thomas。我知道我错过了一些简单的事情。 以下完美运行。
“您将 vars 作为数据的实际子集。按照您编写 hist 函数的方式,它需要列名称。使 vars = name(iris)[1:3] 应该可以正常工作。”