R 基于双向命中的聚集门
我有下表:R 基于双向命中的聚集门,r,R,我有下表: df <- read.table(textConnection("V1 V2 V3 1 T Y 4 Y T 1 O P 2 Q E 2 E Q
df <- read.table(textConnection("V1 V2 V3
1 T Y
4 Y T
1 O P
2 Q E
2 E Q
5 C V
2 V C"), header=TRUE)
我的意思是,我们可以使用传统的for循环来实现这一点,但我认为在R中应该有更好的方法来实现这一点。我们可以通过对“V2”和“V3”的每一行进行排序,然后对“V1”按“V2”和“V3”分组进行聚合
df[2:3] <- t(apply(df[2:3], 1, sort))
aggregate(V1 ~ ., df, sum)
# V2 V3 V1
#1 O P 1
#2 E Q 4
#3 C V 7
#4 T Y 5
df[2:3]排序工作正常,我可以看到列具有相同的值,但奇怪的是聚合没有做任何事情。为什么会这样?@ifreak我在用你的例子,它是用聚合得到和
。所以,我不确定你们到底在干什么。你能试试新的R疗程吗?好的,它起作用了。我还有一个不相关的问题。非常感谢。
df[2:3] <- t(apply(df[2:3], 1, sort))
aggregate(V1 ~ ., df, sum)
# V2 V3 V1
#1 O P 1
#2 E Q 4
#3 C V 7
#4 T Y 5