ddply和引用变量中的空格

Joh*_*han 6 r plyr

是否可以在ddply中使用空格?

我正在使用列名中包含大量空格的电子表格中的数据,我想保留这些名称,因为稍后我想要使用与原始列相同的列名导出此数据.有200多列,使用make.names当然会给我正确的名称,但后来我失去了原来的列名.

然而ddply似乎不喜欢空格?有解决方法吗?

lev=gl(2, 3, labels=c("low", "high"))
df=data.frame(factor=lev, "fac tor"=lev, response=1:6, check.names = FALSE)

> ddply(df, c("factor"), summarize, r.avg=mean(response))
factor r.avg
1    low     2
2   high     5

> ddply(df, c("fac tor"), summarize, r.avg=mean(response))
Error in parse(text = x) : <text>:1:5: unexpected symbol
: fac tor
Run Code Online (Sandbox Code Playgroud)

Cha*_*ase 9

将列名称包装在单个后退标记(`)中似乎可以解决问题.

ddply(df, "`fac tor`", summarize, r.avg=mean(response))
Run Code Online (Sandbox Code Playgroud)

您还可以使用列索引,这些索引可能有吸引力,也可能没有吸引力,具体取决于您的data.frame有多大以及您事先知道每列的位置.

ddply(df, 2, summarize, r.avg=mean(response))
Run Code Online (Sandbox Code Playgroud)