次の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
サンプルデータを変更して、単語数が異なるコンマ区切りの文字列でも機能することを示しました。