【发布时间】:2018-01-15 17:27:33
【问题描述】:
我有一个看起来像这样的数据框(100 万条数据):(处理有多个可能的字符变量,我只是为了这个问题而简化了)
ID Position Treatment
--20AxECvv- 0 A
--20AxECvv- -1 A
--20AxECvv- -2 A
--h9INKewQf- 0 A
--h9INKewQf- -1 B
zZU7a@8jN 0 B
QUeSNEXmdB 0 C
QUeSNEXmdB -1 C
qu72Ql@h79 0 C
我只想保留独占处理的ID,换句话说,即使是多次处理,也只保留一次处理的ID。之后,我想总结每个治疗的 ID 数量。 结果将是:
ID Position Treatment
--20AxECvv- 0 A
--20AxECvv- -1 A
--20AxECvv- -2 A
zZU7a@8jN 0 B
QUeSNEXmdB 0 C
QUeSNEXmdB -1 C
qu72Ql@h79 0 C
And the sum :
A : 1
B : 1
C : 2
我知道如何解决这个问题,可能是在一个循环中使用一个循环,但我是 R 的初学者。
【问题讨论】:
-
您的第一个问题在这里得到解答:Select groups with more than one distinct value per group。答案解释了
if(uniqueN(<var>) <condition>) .SD, by = <mygroup>的使用。对于您的第二个问题,请参阅Counting unique / distinct values by group in a data frame。
标签: r if-statement count conditional-statements criteria