Boxplot - 使用变量访问列名

时间:2011-10-27 16:03:00

标签: r boxplot

如何使用包含列名称的变量来访问列?

假设我们有一个包含3列的数据框DF: Var1 Var2 Var3 ,其中 Var3包含数值数据,Var1和Var2包含几个因子。

我们希望使用包含列名称的临时变量生成2个箱图:

temp<-"Var3"
boxplot(DF[temp]) #(<--that works).

如果我使用相同的方法获取Var2中每个因子的箱线图,则不会:

boxplot(DF[temp]~DF$Var2) #(<-- does not work).

我怎样才能使这个工作?

译注: 如果我直接使用名称“Var3”,它确实可以工作并显示几个箱图:

boxplot(DF$Var3~DF$Var2)

3 个答案:

答案 0 :(得分:6)

尝试使用双括号而不是单括号:

tmp1 <- 'Sepal.Width'
tmp2 <- 'Species'
boxplot( iris[[tmp1]] ~ iris[[tmp2]] )

答案 1 :(得分:1)

你可以这么做。 with语句指示boxplotDF内查找变量,get语句访问名为tmp的对象。

with(DF, boxplot(get(tmp) ~ Var2))

这是一个说明性的例子

tmp <- 'wt'
with(mtcars, boxplot(get(tmp) ~ cyl))

enter image description here

答案 2 :(得分:1)

您可以使用paste构建公式,然后转换为boxplot调用的公式:

boxplot(as.formula(paste(temp,"Var2",sep="~")),DF)