【发布时间】:2021-11-07 21:08:50
【问题描述】:
这可能是一个简单的问题,但我正在努力解决它。我正在尝试使用 for 循环为数据框中的每一列生成密度图。我可以从列名创建一个列表,但是当我尝试使用该列表时,我无法生成我的密度图。
df1 <- as.data.frame(mtcars)
list <- colnames(df1[1:11])
for (i in list){
ggdensity(df1$i)
}
【问题讨论】:
这可能是一个简单的问题,但我正在努力解决它。我正在尝试使用 for 循环为数据框中的每一列生成密度图。我可以从列名创建一个列表,但是当我尝试使用该列表时,我无法生成我的密度图。
df1 <- as.data.frame(mtcars)
list <- colnames(df1[1:11])
for (i in list){
ggdensity(df1$i)
}
【问题讨论】:
【讨论】:
$-subsetting 时,$ 之后的部分被解释为字符串。在 OP 情况下,这会导致 NULL,因为 mtcars 中没有名为 i 的列。确实使用[]-subsetting 解决了这个问题。
ggdensity(df1$carb) 或ggdensity(df1[,1] 的代码该代码适用于单个图,但在放入 for 循环时无效,所以虽然 tidyverse 示例是一个很棒的解决方法,但我仍然不明白为什么此响应中的两个示例在 for 循环中不起作用
mtcars[,i] @ViniciusFelix 也这样做,但正如他也指出的那样,使用for 循环将计算图,但不打印它们。