以下是如何打印组的示例:
数据:
dat <- structure(list(Group1 = c("AB", "CD", "ED", "GD"), Group2 = c("FG",
"ZX", "QW", "AS"), Group3 = c("SA", "AB", "OI", "ZX"), Group4 = c("KD",
"ER", "SA", "QW"), Group5 = c("CD", "ZX", "AB", "KD")), class = "data.frame", row.names = c(NA,
-4L))
dat
Group1 Group2 Group3 Group4 Group5
1 AB FG SA KD CD
2 CD ZX AB ER ZX
3 ED QW OI SA AB
4 GD AS ZX QW KD
ta <- table(as.matrix(dat))
# all character strings
ta
AB AS CD ED ER FG GD KD OI QW SA ZX
3 1 2 1 1 1 1 2 1 2 2 3
# only repeated
ta[ta > 1]
AB CD KD QW SA ZX
3 2 2 2 2 3
sapply( names(table(as.matrix(dat))[table(as.matrix(dat)) > 1]),
function(x) colnames(dat[grep(paste0("\\b",x,"\\b"), dat)]) )
$AB
[1] "Group1" "Group3" "Group5"
$CD
[1] "Group1" "Group5"
$KD
[1] "Group4" "Group5"
$QW
[1] "Group2" "Group4"
$SA
[1] "Group3" "Group4"
$ZX
[1] "Group2" "Group3" "Group5"
sapply( names(table(as.matrix(dat))),
function(x) colnames(dat[grep(paste0("\\b",x,"\\b"), dat)]) )
$AB
[1] "Group1" "Group3" "Group5"
$AS
[1] "Group2"
$CD
[1] "Group1" "Group5"
$ED
[1] "Group1"
$ER
[1] "Group4"
$FG
[1] "Group2"
$GD
[1] "Group1"
$KD
[1] "Group4" "Group5"
$OI
[1] "Group3"
$QW
[1] "Group2" "Group4"
$SA
[1] "Group3" "Group4"
$ZX
[1] "Group2" "Group3" "Group5"
sapply( names(table(as.matrix(dat))[table(as.matrix(dat)) > 1]),
function(x) dat[grep(paste0("\\b",x,"\\b"), dat)] )
$AB
Group1 Group3 Group5
1 AB SA CD
2 CD AB ZX
3 ED OI AB
4 GD ZX KD
... etc