【发布时间】:2016-12-04 19:54:23
【问题描述】:
使用R,我想用另外两个变量来计算两个变量中出现的次数; IDS 和年份。计数的变量之一需要按唯一值计数。 我真的四处寻找答案,但似乎找不到。 我有一个这样的数据集(尽管包含更多变量):
IDS = c(1,1,1,1,1,1,2,2)
year = c(1,1,1,1,1,2,1,1)
x = c(5, 5, 5, 10, 2, NA, 3, 3)
y = c(1, 2, 4, 0, NA, 2, 0, NA)
dfxy = data.frame(IDS, year, x, y)
dfxy
IDS year x y
1 1 1 5 1
2 1 1 5 2
3 1 1 5 4
4 1 1 10 0
5 1 1 2 NA
6 1 2 NA 2
7 2 1 3 0
8 2 1 3 NA
我想要计算每个 IDS 和每年在 x 和 y 两列中出现的次数。 x 中的计数必须是 x 的唯一值。 我想要这样的输出:
IDS year x y
1 1 1 3 4
2 1 2 0 1
3 2 1 1 1
和cbind中的答案类似
Aggregate / summarize multiple variables per group (i.e. sum, mean, etc)
对我来说应该是这样的
aggregate(cbind(x, y)~IDS+year, data=dfxy, ???)
NA 算作没有出现,任何数字都算作 y 中的出现,在 x 中必须计算每个唯一出现的次数(只要它不是 NA)。 x 和 y 中都没有带 NA 的行。 我尝试使用长度而不是总和,但这似乎只是总结了 x 和 y 的行数。
我可以在其中找到答案的想法或链接? 谢谢
【问题讨论】:
-
我猜 'x' 的第二个值是 0,因为没有非 NA 元素
-
确实,现在更正了。