[英]dynamically calculate difference between columns in R
我的 data.table 包含先验未知数量的列,例如三个:
DT <- data.table("columnPred" = c(1,2,3),
"column1" = c(7,8,9),
"column2" = c(44,55,66))
现在我想计算列之间的变化:
DT[, delta1 := ((columnPred/column1)-1)*100]
DT[, delta2 := ((column1/column2)-1)*100]
...
但是我事先不知道我的 data.table 会有多少列,我需要动态地执行此操作。
如何才能做到这一点?
delta_col_names <- paste0("delta",1:(ncol(DT)-1))
DT[, (delta_col_names) := ((DT[,1:(ncol(DT)-1)] / DT[,-1])-1)*100]
columnPred column1 column2 delta1 delta2
1: 1 7 44 -85.71429 -84.09091
2: 2 8 55 -75.00000 -85.45455
3: 3 9 66 -66.66667 -86.36364
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.