Powiedzmy mam data.tableodjąć każdą kolumnę od siebie kolumny w R data.table
set.seed(1) # to make the example reproducible
ex<-data.table(AAA=runif(100000),
BBB=runif(100000),
CCC=runif(100000),
DDD=runif(100000),
FLAG=c(rep(c("a","b","c","d","e"),200000)))
Chcę odjąć od kolumny AAA
co drugi kolumny, a następnie od BBB
każdy pozostałe kolumny (z wyjątkiem Flag) i tak dalej, tak że wyjście będzie wyglądać ...
ex[,list(AAA_BBB=AAA-BBB,
AAA_CCC=AAA-CCC,
AAA_DDD=AAA-DDD,
BBB_CCC=BBB-CCC,
BBB_DDD=BBB-DDD,
CCC_DDD=CCC-DDD)]
Czy istnieje data.table składnia, że może to zrobić czysto, nie wiedząc ile kolumn istnieją lub co ich nazwy są?
czynienia z 1000000 wierszy w swoim przykładzie nie jest dużo zabawy. Efektywność nie została wymieniona w pytaniu ... czy to niepokój? W każdym razie próbowałem odpowiedzi tylko w dziesięciu rzędach. – Frank
@Frank Wierzę, że potrzeba wydajności jest w dużym stopniu zasugerowana, jeśli wykorzystywana jest data.table. – Roland
@Frank przepraszam za nadmierne wiersze w przykładzie po prostu skopiować-wkleiłem poprzednie pytanie, które zapytałem, gdzie duża liczba wierszy była istotna dla przykładu. –