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