【发布时间】:2015-11-05 16:33:15
【问题描述】:
这是我的数据框的样子:
a <- c(1,1,4,4,5)
b <- c(1,2,3,3,5)
c <- c(1,4,4,4,5)
d <- c(2,2,4,4,5)
e <- c(1,5,3,2,5)
df <- data.frame(a,b,c,d,e)
我想写一些东西来返回向量 a、b、c、d 的所有唯一实例,这些实例在向量 e 中具有不同的值。
例如:
a b c d e
1 1 1 1 2 1
2 1 2 4 2 5
3 4 3 4 4 3
4 4 3 4 4 2
5 5 5 5 5 5
第 3 行和第 4 行在向量 d 之前完全相同(具有 4344 的组合),因此应该只返回其中的一个实例,但它们在向量 e 中有 2 个不同的值。我想对这些进行计数-因此 4344 的组合在向量 e 中有 2 个不同的值。
预期的输出会告诉我某个组合(例如 4344)在向量 e 中有多少次不同的值。所以在这种情况下,它会是这样的:
a b c d e
4 3 4 4 2
到目前为止,我有这样的事情:
library(tidyr)
library(dplyr)
df %>%
unite(key_abcd, a, b, c, d) %>%
count(key_abcd, e)
但这将计算每个 a、b、c、d 组合重复 e 的次数。我想计算每个 a、b、c、d 组合的 e 不同的次数。
注意:向量 a、b、c、d 中的值的重复组合和向量 e 中的重复值。对于 a、b、c、d 的唯一组合,我只想返回 e 中唯一值的计数。
【问题讨论】:
-
有。我的另一个问题要求 e 中的重复值,这个问题要求 e 中的不同值。也许您应该在将帖子标记为重复之前更好地阅读问题的标题。
-
@RichardScriven - 注意两个问题中的数据框有何不同。在第一个问题中,组合 4344 在 e“3”和“3”中有 2 个相同的值。在此数据帧中,组合 4344 在 e、“2”和“3”中有 2 个不同的值。在我的情况下,e 中的重复值和不同值都意味着我想分析的完全不同的东西。你帮不上什么忙
标签: r