R data.frame:将字符列的内容转换为行

时间:2012-03-16 12:23:30

标签: r dataframe transpose

我有以下data.frame:

词汇分数

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

我想转换为以下格式

词汇分数

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

看起来像一个非常简单的,但无法通过转置解决...

1 个答案:

答案 0 :(得分: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

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