5
So che posso fare questoCome aggregare (usando "by") un data.table con nome di colonna personalizzato senza ": ="?
a <- dt[,sum(x), by=y]
Anche io può fare questo
dt[,z:=sum(x), by=y] # this would modify dt
Tuttavia non capisco perché non posso fare questo:
a <- dt[,z=sum(x), by=y]
Come devo eseguire un "riepilogo" con nomi di colonne personalizzati?
Questa è l'unica opzione?
a <- copy(dt)
a[,z:=sum(x), by=y]
Anche c'è solo 1 colonna? È strano questa volta 'dt [, list (z: = sum (x)), per = y]' non funziona – colinfang
@colinfang ': =' è l'operatore di assegnazione - ma non vuoi assegnare nulla , stai semplicemente estraendo una lista di cose da 'data.table' e vuoi dare un nome alla lista - quindi la sintassi – eddi
Yeah': = 'è una funzione' data.table', quindi non ha qualsiasi significato all'interno di un argomento 'list'. Basta usare 'list (z = sum (x))', e usa solo ': =' quando cerchi di aggiungere una colonna a una tabella esistente. –