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 に答える