VarA和VarB colomn是完全共线变量的输出,我想将变量分组并删除基于VarB的重复组合(例如:D,A相互关联,我想要在最终输出中保留两个组合中的一个)
VarA <- c('G','D','A','X','E','D','A','X','E','Z','Q')
VarB <- c('H','D','D','E','E','A','A','X','X','Z','Z')
corrout <- as.data.frame(cbind(VarA,VarB))
VarA VarB
G H
D D
A D
X E
E E
D A
A A
X X
E X
Z Z
Q Z
下面显示的所需内容基于VarB,并且在上面已经列出的VarB的输出A,A和X,X组合中删除了两个重复项。
DESIRED OUTPUT
GROUP1 - G
GROUP2 - D,A
GROUP3 - X,E
GROUP4 - Z,Q
希望有人能够帮助我做一个简单的功能!!非常感谢..
答案 0 :(得分:1)
我们可以尝试
library(data.table)
unique(setDT(corrout)[, toString(unique(VarA)) , VarB], by = "V1")[,
VarB := paste0("Group", 1:.N)][]
# VarB V1
# 1: Group1 G
# 2: Group2 D, A
# 3: Group3 X, E
# 4: Group4 Z, Q
答案 1 :(得分:0)
以下作品:
删除两个变量相同的行:
ViewCount
按行排序变量:
> c2 = corrout[corrout$VarA != corrout$VarB,]
> c2
VarA VarB
1 G H
3 A D
4 X E
6 D A
9 E X
11 Q Z
删除重复项:
> c3 = data.frame(t(apply(c2, 1, function(x) sort(x))))
> c3
X1 X2
1 G H
3 A D
4 E X
6 A D
9 E X
11 Q Z