如何在 R 中为我的数据框添加列,包括另一列的计数,用于两个不同的列?

How to add columns to my data frame, including the counts of another columns , for two different column, in R?

我需要计算数据框中两个不同的列并将值添加为两个新列。

在下面的例子中,我想计算 x 和 y

ID  l   x   y
1   s   1   E
1   s   2   NA
1   s   3   E
1   s   4   E
1   s   5   E
2   ss  1   NA
2   ss  2   E
2   ss  3   E
3   m   1   NA
3   m   2   E
3   m   3   NA
3   m   4   NA
3   m   5   E
3   m   6   E
3   m   7   NA
4   mm  1   E
4   mm  2   E

我需要输出如下所示:

ID  l    n.x    n.y
1   s    5      4
2   ss   3      2
3   m    7      3
4   mm   2      2

如何使用count()?或其他代码? 谢谢

这是一个tidyverse方法。您可以 group_by 您的 ID 列,并计算不是 NA.

的行
library(tidyverse)

df %>% 
  group_by(ID, l) %>% 
  summarize(n.x = sum(!is.na(x)), n.y = sum(!is.na(y)), .groups = "drop")

# A tibble: 4 x 4
     ID l       n.x   n.y
  <int> <chr> <int> <int>
1     1 s         5     4
2     2 ss        3     2
3     3 m         7     3
4     4 mm        2     2