样例数据:
df <- data.frame("ID" = 1:6,
"Group1" = c("A", NA, "C", NA, "E", "C"),
"Group2" = c("E", "C", "C", NA, "E", "E"),
"Group3" = c("A", "A", NA, NA, "C", NA),
"Group4" = c(NA, "C", NA, "D", "C", NA),
"Group5" = c("A", "D", NA, NA, NA, NA))
在每一行中,我想要计算每个值的数量,并将最常见的值存储在一个新变量New.Group
中。在出现平局情况下,应选择该行中第一个出现的值。逻辑应用于以下示例:
第一行的New.Group
取值A
,因为它是该行中最常见的值,忽略了NA
。
第二行取值C
,因为它也是最常见的值。
第三行与第二行相同。
第四行取值D
,因为它是该行中唯一的值。
在第五行中,E
和C
都有2次计数,但由于E
在该行中先出现,所以选择E
。
第六行类似于第五行,C
和E
的计数都是1次,但由于C
在该行中先出现,所以选择C
。
期望的输出:
ID Group1 Group2 Group3 Group4 Group5 New.Group
1 1 A E A <NA> A A
2 2 <NA> C A C D C
3 3 C C <NA> <NA> <NA> C
4 4 <NA> <NA> <NA> D <NA> D
5 5 E E C C <NA> E
6 6 C E <NA> <NA> <NA> C
rowMode
函数,您可以在其中设置该函数在处理并列值和缺失值时应该执行的操作。在这里发布了它。 - Jaap