我在R工作。
我有一个数据集,其中一些记录包含城市和县的列表,而不仅仅是一个城市或县。我正在寻找一种方法将数据转换为“长”格式,其中会有多个记录,每个记录都有一个城市/县。
reshape假定在一列中有多列而不是以逗号分隔的列表。
strsplit可以将条目拆分为值向量,但是如何创建包含所有相同其他信息的新记录,将其添加到data.frame并删除原始条目?
谢谢!
答案 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)
应该这样做。