gpt4 book ai didi

r - 选择要在 ggplot2 中绘制的数据框列

转载 作者:行者123 更新时间:2023-12-04 12:29:19 25 4
gpt4 key购买 nike

我有一个大约 150 列的大数据表。我需要用大约 1/3 的直方图制作一系列直方图。我不想在我的脚本中放置 50 行相同的绘图命令,而是想遍历一个列表,告诉我要使用哪些列。这是一个测试数据集来说明:

d <- data.frame(c(rep("A",5), rep("B",5)),
sample(c(1:10), 10, replace=TRUE),
sample(c(1:10), 10, replace=TRUE),
sample(c(1:10), 10, replace=TRUE),
sample(c(1:10), 10, replace=TRUE),
sample(c(1:10), 10, replace=TRUE))

colnames(d) <- c("col1","col2","col3","col4","col5","col6" )


ggplot(data=d, aes(col2, fill= col1)) + geom_density(alpha = 0.5)

所以,与其写这个 50 次并替换 aes()值(value)观,我真的想做更多这样的事情......
cols_to_plot <- c("col2","col4","col6")

for (i in length(cols_to_plot)) {
ggplot(data=d, aes(cols_to_plot[i], fill= col1)) + geom_density(alpha = 0.5)

}

但当然,这行不通……有没有办法做这种事情?

谢谢!

最佳答案

我认为如果你融化你的数据,你会过得更好。尝试这个:

library(reshape2)
d2 <- melt(d, id='col1')
ggplot(d2, aes(value, fill=col1)) + geom_density(alpha=.5) + facet_wrap(~variable)

或者,如果您想做您最初想做的事情,请使用 aes_string , 喜欢:
ggplot(data=d, aes_string(cols_to_plot[i], fill='col1')) + geom_density(alpha = 0.5)

关于r - 选择要在 ggplot2 中绘制的数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com