在R中,如何将带有单个逗号分隔字段的一条记录翻译成多条记录?

时间:2011-05-03 16:12:54

标签: r

我在R工作。

我有一个数据集,其中一些记录包含城市和县的列表,而不仅仅是一个城市或县。我正在寻找一种方法将数据转换为“长”格式,其中会有多个记录,每个记录都有一个城市/县。

reshape假定在一列中有多列而不是以逗号分隔的列表。

strsplit可以将条目拆分为值向量,但是如何创建包含所有相同其他信息的新记录,将其添加到data.frame并删除原始条目?

谢谢!

2 个答案:

答案 0 :(得分:4)

您可以使用包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 :(得分:1)

d = as.data.frame(do.call(rbind, strsplit(dtaFrame$cityCountry, ",")))
colnames(d) = c("city", "country")
cbind(dtaFrame[,-which(colnames(dtaFrame)=="cityCountry",], d)

应该这样做。