我在R中有一个for循环的代码。我想调用每个列的名称并将其用作ggplot的参数。我在这里的代码是for循环只能将i作为字符传递给aes。然而,aes不能把角色作为一个论据。 有什么想法吗? `
for (i in names(data)){
dev.new()
p<- ggplot(data = data,aes(x=Name,y=i,color=group))+geom_line()
ggsave(filename = as.character(paste(i,'.pdf')),plot = p)
dev.off()
}
`
答案 0 :(得分:0)
我可以想到两个主要选项:
aes_string
使ggplot将字符串视为列名。不要忘记在其他变量中添加引号以使其正常工作 p<- ggplot(data = data,aes_string(x="Name",y=i,color="group"))+geom_line()
data[,i]
: p<- ggplot(data = data,aes_string(x=Name,y=data[,i],color=group))+geom_line()
我更喜欢第一个选项,就像您稍后更改代码以过滤数据一样(例如ggplot(data=data[data[,i]>100,]...
),您需要重复y
值的过滤器。