Hãy nói rằng tôi có một data.tableTrừ mỗi cột từ mỗi cột khác trong một 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)))
Tôi muốn trừ từ cột AAA
mỗi cột khác, sau đó từ BBB
mỗi cột còn lại (trừ CỜ) và vân vân sao cho đầu ra trông giống như ...
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)]
Có một cú pháp data.table có thể làm sạch mà không biết có bao nhiêu cột hoặc tên của chúng?
Đối phó với những 1000000 hàng trong ví dụ của bạn không phải là nhiều niềm vui. Hiệu quả không được đề cập trong câu hỏi của bạn ... nó có phải là một mối quan tâm? Dù sao, tôi chỉ thử câu trả lời của tôi với mười hàng. – Frank
@Frank Tôi tin rằng nhu cầu về hiệu quả là khá nhiều ngụ ý nếu data.table được sử dụng. – Roland
@Frank xin lỗi về các hàng quá mức trong ví dụ tôi chỉ sao chép-dán một câu hỏi trước đó mà tôi hỏi nơi số lượng lớn các hàng là thích hợp với ví dụ. –