我在R中有一个数据框,格式如下
name1 name2 name3
word1 1 0 1
word2 0 1 1
word3 1 1 0
我想把这个数据框融合成:
name1 |word1|word3
name2 |word2|word3
name3 |word1|word2
答案 0 :(得分:1)
这是一个单线,基础解决方案:
out <- t(apply(mydf, 2, function(x) row.names(mydf)[which(as.logical(x))]))
结果是一个矩阵:
> out
[,1] [,2]
name1 "word1" "word3"
name2 "word2" "word3"
name3 "word1" "word2"
很容易变成数据框:
> as.data.frame(out)
V1 V2
name1 word1 word3
name2 word2 word3
name3 word1 word2
这是我在阅读时的数据:
mydf <- read.table(text=' name1 name2 name3
word1 1 0 1
word2 0 1 1
word3 1 1 0', header=TRUE)