对不起,如果它可能是一个非常基本的点,但我找不到一个方便的工具。data.table中的列之间的差异
我有一个(非常大)的数据表,并要跨列的区别,那就是
A B C D
9 N.A. 3 2
15 4 N.A. N.A.
N.A. N.A 2 3
我想创建一个新的E列那就是剩下一个的差分B之后,C和D.对于B,C和D列中的NAs,我可以假设为零,但是当AI中有NA时,必须忽略这个观察。因此,最终的结果应该是
A B C D E
9 N.A. 3 2 4
15 4 N.A. N.A. 11
我删除所有在DT是酸钠在由 DT <列 - DT [(DT $ A == “NA”)!]
和那么我尝试了 DT [,E:= lapply(.SD,diff),.SDcols = c(“A”,“B”,“C”,“D”)]。 但由于N.A.的原因而失败。 我不想手动将N.A.s更改为0(因为后面我可能想区分什么是真正的零和我所推测的是什么) - 我想在一个函数内部完成。有人有一个好主意吗?