В R, как мне перевести одну запись с одним разделенным запятыми полем в несколько записей? - PullRequest
1 голос
/ 03 мая 2011

Я работаю в Р.

У меня есть набор данных, в котором некоторые записи содержат список городов и округов, а не только один город или округ. Я ищу способ перевести эти данные в «длинный» формат, в котором будет несколько записей, каждая с одним городом / округом.

reshape предполагает наличие нескольких столбцов вместо списка через запятую в одном столбце.

strsplit может разбить запись на вектор значений, но как мне создать новые записи, содержащие все ту же другую информацию, добавить ее в data.frame и удалить исходную запись?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 03 мая 2011

Вы можете использовать функцию colsplit в упаковке reshape2:

x <- c("a, b", "c, d", "e")
library(reshape2)
colsplit(x, ",", names=c("City", "County"))

  City County
1    a      b
2    c      d
3    e       
1 голос
/ 03 мая 2011
d = as.data.frame(do.call(rbind, strsplit(dtaFrame$cityCountry, ",")))
colnames(d) = c("city", "country")
cbind(dtaFrame[,-which(colnames(dtaFrame)=="cityCountry",], d)

должен это сделать.

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