我正在使用R的数据表,并尝试在按组执行操作时分配一个列:=以字符对象命名。
如果不是由小组完成的,那么事情就是relatively straightforward:
dt <- data.table(mtcars)[, .(cyl, mpg)]
thing2 <- 'mpgx2'
dt[,(thing2):=mpg*2]
但是,当我按组进行操作时,会发生错误:
DT <- data.table(V1=c(1L,2L),
V2=LETTERS[1:3],
V3=round(rnorm(4),4),
V4=1:12)
ghi <- "def"
DT[,.((ghi)=mean(V3)),by=V1]
具体来说,Error: unexpected '=' in "DT[,.((ghi)="
。
我该如何纠正这个?
答案 0 :(得分:3)
我们可以使用setNames
DT[,setNames(.(mean(V3)), ghi), by = V1]
# V1 def
#1: 1 -1.4663
#2: 2 0.0414