This question already has an answer here:
Add a new column of the sum by group [duplicate]
(1 个回答)
4年前关闭。
假设我有这样的数据框
DF
我想计算特定
DF1
(1 个回答)
4年前关闭。
假设我有这样的数据框
DF
Id X Y Z
1 1 5 0
1 2 0 0
1 3 0 5
1 4 9 0
1 5 2 3
1 6 5 0
2 1 5 0
2 2 4 0
2 3 0 6
2 4 9 6
2 5 2 0
2 6 5 2
3 1 5 6
3 2 4 0
3 3 6 5
3 4 9 0
3 5 2 0
3 6 5 0
我想计算特定
Z
中变量 Id
的非零条目数,并将该值记录在新列 Count
中,因此新数据框看起来像DF1
Id X Y Z Count
1 1 5 0 2
1 2 4 0 2
1 3 6 5 2
1 4 9 0 2
1 5 2 3 2
1 6 5 0 2
2 1 5 0 3
2 2 4 0 3
2 3 6 6 3
2 4 9 6 3
2 5 2 0 3
2 6 5 2 3
3 1 5 6 2
3 2 4 0 2
3 3 6 5 2
3 4 9 0 2
3 5 2 0 2
3 6 5 0 2
最佳答案
我们可以使用基本的 R ave
计算由 Z
分组的列 Id
的非零值的数量
df$Count <- ave(df$Z, df$Id, FUN = function(x) sum(x!=0))
df$Count
#[1] 2 2 2 2 2 2 3 3 3 3 3 3 2 2 2 2 2 2
关于r - 计算 R 中列的非零值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40385920/
10-12 19:57