【发布时间】:2015-10-19 14:52:56
【问题描述】:
第 1 部分我有以下数据表。我想创建一个新列,其中包含每个id 的出现次数,其中有任何样式值,NA 除外。主要问题是我不知道如何处理NA。目前,当NA 出现时,我得到的频率为 1。
id style
1 A
1 A
2 A
2 B
3 NA
4 A
4 C
5 NA
我尝试使用以下方法,但它仍然计算 NA 值
dt[, allele_count := .N, by = list(pat_id, style)]
所需的数据表如下:
id style count
1 A 2
1 A 2
2 A 2
2 B 2
3 NA 0
4 A 4
4 B 4
4 B 4
4 C 4
5 NA 0
第 2 部分 我还希望能够添加另一列,其中包含具有特定样式值的每个 id 的出现次数。
id style count2
1 A 2
1 A 2
2 A 1
2 B 1
3 NA 0
4 A 1
4 B 2
4 B 2
4 C 1
5 NA 0
奖励问题:您如何计算在 Part2 中给定的 style 值出现 id 的次数,而不是查看不同每个id的style值,如下所示。
id style count3
1 A 1
1 A 1
2 A 2
2 B 2
3 NA 0
4 A 3
4 B 3
4 B 3
4 C 3
5 NA 0
【问题讨论】:
-
不确定第一个计数...例如,如果有另一个样式 B 的 id = 3,您可以在此示例中添加预期结果吗? (还要检查您的初始 data.table,因为它没有四个 id=4...)
-
预期的输出与给定的输入不匹配。
标签: r data.table frequency