使用R

时间:2016-02-21 04:46:02

标签: r ggplot2

下面是我想要的一个简单示例:

“DF1”是具有两个变量“V1”和“V2”的数据帧,因此我可以将简单的ggplot函数作为流程:

ggplot(DF1,aes(x=V1,y=V2))+geom_line()

现在,如果我有以下两个字符串:

name1="V1"
name2="V2"

有没有办法用上面的ggplot代码中的name1和name2替换V1和V2?我尝试使用do.call但没有成功。我觉得我需要类似于公式的目标来做到这一点。

4 个答案:

答案 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等的列通常会适得其反并且容易出错

更新

一些讨论Named columns renaming

答案 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"