공백이있는 변수 이름을 포함하는 객체와 명명 된 변수 모두를 ddply로 전달할 수 있습니까? 여기에 내가 무엇을 의미하는지의 예입니다ddply - 객체에 포함 된 변수 이름의 공백
> library(plyr)
> dat <- data.frame(id1=rep(c("A","B"),8),id2=rep(c("C","D","E","F"),4),x=rnorm(16))
> vname <- "id2"
#works without spaces
> ddply(dat,c("id1",vname),colwise(sum))
id1 id2 x
1 A C -1.1215505
2 A E -1.4507586
3 B D 1.5064013
4 B F -0.5428153
> vname <- "id 2"
> names(dat)[2] <- vname
#breaks with spaces
> ddply(dat,c("id1",vname),colwise(sum))
Error in parse(text = x) : <text>:1:4: unexpected numeric constant
1: id 2
^
#backticks work when manually entering the name
> ddply(dat,c("id1","`id 2`"),colwise(sum))
id1 id 2 x
1 A C -1.1215505
2 A E -1.4507586
3 B D 1.5064013
4 B F -0.5428153
#backticks don't work when pointing to object containing name
> ddply(dat,c("id1",`vname`),colwise(sum))
Error in parse(text = x) : <text>:1:4: unexpected numeric constant
1: id 2
^
그렇게하는 것이 훨씬 쉽고 형식이 올바른 열 이름을 사용하는 것이 훨씬 쉽습니다. – joran
에 동의했지만 실제로이 특정 인스턴스에서는 성가 시게됩니다. 일시적으로 이름을 조정하여 해결 방법을 찾을 수 있지만 이렇게하려면 조건문을 많이 사용하지 않는 것이 좋습니다. – David