如何使用索引从数据帧创建列表

问题描述 投票:0回答:1

这可能是一个非常简单的问题。但我不知道如何解决它。 我有一个包含很多列的数据集,我想运行一个循环来为某些列创建直方图。我知道我可以使用列名称创建列表,但是有没有办法使用索引来代替?

请参阅下面使用 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, ...>]]
中的错误引起: !必须使用字符串而不是双向量对数据代词进行子集化。

r list loops indexing
1个回答
0
投票

谢谢@Gregor Thomas。我知道我错过了一些简单的事情。 以下完美运行。

“您将 vars 作为数据的实际子集。按照您编写 hist 函数的方式,它需要列名称。使 vars = name(iris)[1:3] 应该可以正常工作。”

© www.soinside.com 2019 - 2024. All rights reserved.