下面是我想要的一个简单示例:
“DF1”是具有两个变量“V1”和“V2”的数据帧,因此我可以将简单的ggplot函数作为流程:
ggplot(DF1,aes(x=V1,y=V2))+geom_line()
现在,如果我有以下两个字符串:
name1="V1"
name2="V2"
有没有办法用上面的ggplot代码中的name1和name2替换V1和V2?我尝试使用do.call但没有成功。我觉得我需要类似于公式的目标来做到这一点。
答案 0 :(得分:2)
标准答案是
aes_string(x=name1, y=name2)
(绝对是重复的)
答案 1 :(得分:0)
我会使用行
上的plyr
重命名列
library(plyr)
DF1 <- rename(DF1, c("V1" = "name1"))
或者我更喜欢的方式,使用data.table
require(data.table)
DT <- as.data.table(DF1)
setnames(DT, "V1","name1")
然后
ggplot(DT, aes(x=name1,y=name2))+geom_line()
使用设置为某些V1
等的列通常会适得其反并且容易出错
更新
答案 2 :(得分:0)
我只知道get()会起作用!
ggplot(DF1,aes(x=get(name1),y=get(name2)))+geom_line()
答案 3 :(得分:0)
R base更改列名:
colnames(DF1)[colnames(DF1)=="V1"] <- "Name 1"