2012-03-16 2 views
1

Я следующий data.frame:R data.frame: преобразование содержимого символьной колонке строк

СЛОВА SCORE

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

Я хочу, чтобы преобразовать в следующем формате

СЛОВА SCORE

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

Похоже, что это очень простой вариант, но он не мог понять это с помощью транспонирования ...

ответ

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 

Я изменил свои данные примера, чтобы продемонстрировать, что он также будет работать для разделенных запятыми строк, которые имеют разное количество слов.

Смежные вопросы