【发布时间】:2015-08-18 10:11:34
【问题描述】:
我有一个带有结构化数据的丑陋列的 data.frame。每列可以保存 1 到 40 个感兴趣的值。每个值都用 html 分隔符 "<br />" 分隔。以1.1的形式提取的值,即一个整数一个句点和另一个整数。
如何将这些列分离并融合成不同的行?
我知道 lapply 和 tidy::separate 可能是要走的路。但我还没有成功。所以寻求帮助。
测试数据在这里:
testdata <- dget("http://pastebin.com/download.php?i=VS2cq2rB")
数据框包含两个列:"id" 和 "moduler"。
我想改用“id”和“value”。最终结果应该是这样的。
"id", "value"
1, 1.1
1, 1.2
1, 1.3
1, 2.4
2, 1.1
2, 1.3
2, 3.3
这是我最近的一次尝试——与我开始使用 lapply 的地方相去甚远。
origdf <- data.frame()
#names(newdf) <- c("id", 'pnummer', 'moduler')
for (i in 1:nrow(hs)) {
newdf <- data.frame()
newdf[i, 'id'] <- hs[i, 'id']
newdf[i, 'pnummer'] <- hs[i, 'pnummer']
tmp <- unlist(strsplit(as.character(hs[i,'moduler']), "<br />", fixed=T))
for (m in 3:length(tmp)+3) {
newdf[i, m] <- tmp[m]
}
origdf <- dplyr::bind_rows(newdf, origdf)
}
【问题讨论】:
-
@SabDeM 你看到了什么? sabdemtest pastebin.com/download.php?i=VS2cq2rB") - 适用于 mee(尽管数据看起来很有趣 - 这就是我要解决的问题:-))