2014-06-14 6 views
4

R 데이터 테이블의 열을 집계하고 문자열 이름을 문자열로 제공하려고합니다. 데이터 테이블 기능을 사용하여이를 수행 할 수 있습니까?열 이름이 문자열 인 집계 데이터 테이블

예를 들어, 내가 재현 할 :

foo[,newcol:=mean(oldcol), by=id] 

하지만 뭔가 같은 열 이름에 대한 문자열을 사용 : 내가 시도

foo[,"newcol":=mean("oldcol"), by="id"] 

을 :

작동
foo[,"newcol":=mean(foo[["oldcol"]]), by="id"] 

, 데이터 테이블을 충분히 활용하지 못하기 때문에 속도가 느립니다.

감사합니다. get를 사용

답변

4

:

foo[,"newcol":=mean(get("oldcol")), by="id"] 

하지만 난 당신이 get를 사용하지 않고 같은 성능을 것입니다 확실하지 않다. get를 사용

+0

그것은 공식적인 방법보다 느리지 만. 감사! – kahlo

3

은 일반적인 방법이지만,이 특별한 경우에, 그것을 할 아마 더 빠른 : 내가 뭐하고 있었 훨씬 빠르게 탄트 무엇

foo[, "newcol" := lapply(.SD, mean), by = "id", .SDcols = "oldcol"] 
관련 문제