R data.frame: преобразовать содержимое символьного столбца в строки - PullRequest
1 голос
/ 16 марта 2012

У меня есть следующий data.frame:

СЛОВО СЛОВО

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

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

СЛОВО СЛОВА

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

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

1 Ответ

0 голосов
/ 16 марта 2012

Может быть более простое решение, например, с пакетом 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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...