1

我有以下data.frame:

单词分数

word1,word2,word3        12
word4,word5,word6        9

我想转换成以下格式

单词分数

word1 12
word2 12
word3 12
word4 9
word5 9
word6 9

看起来很简单,但无法通过转置来解决......

4

1 回答 1

0

可能有一个更简单的解决方案,例如使用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

我修改了您的示例数据以证明它也适用于具有不同字数的逗号分隔字符串。

于 2012-03-16T12:47:32.447 回答