我有以下data.frame:
单词分数
word1,word2,word3 12
word4,word5,word6 9
我想转换成以下格式
单词分数
word1 12
word2 12
word3 12
word4 9
word5 9
word6 9
看起来很简单,但无法通过转置来解决......
可能有一个更简单的解决方案,例如使用reshape2
包,但以下应该有效:
dat <- read.table(text='
words score
word1,word2,word3 12
word4,word5,word6,word7 9',
header=T, stringsAsFactors=FALSE)
wds <- strsplit(dat$words, ',')
score <- rep(dat$score, unlist(lapply(wds, length)))
out <- data.frame(word=unlist(wds), score=score,
stringsAsFactors=FALSE)
> out
word score
1 word1 12
2 word2 12
3 word3 12
4 word4 9
5 word5 9
6 word6 9
7 word7 9
我修改了您的示例数据以证明它也适用于具有不同字数的逗号分隔字符串。