我有一个包含的识别信息的两个列上并通过连字符分隔的字母对中的一列的数据帧新的列名:拆分列到相邻的列,使用行的名称中的R
df<-data.frame(
list = rep(1:3, each = 2),
set = rep(c("A","B"), times = 3),
item = c("ab-cd","ef-gh","ij-kl","mn-op","qr-st","uv-wx")
)
我一直在努力实现的是将数据框转换为以下形式,其中:1.由“列表”索引的单独行被折叠成一行; 2.“项目”栏以连字符作为分隔符分割成相邻列; 3.“设置”列作为命名结果列的基础。
df2 <- data.frame(
list = c(1:3),
A_1 = c("ab", "ij", "qr"),
A_2 = c("cd", "kl", "st"),
B_1 = c("ef", "mn", "uv"),
B_2 = c("gh", "op", "wx"))
我与reshape
提到了许多以前张贴的问题(特别是在[此处]),并试图使用BASE转置函数与各种结合功能沿着接近溶液一步工序中,沿着包和splitstackshape
包。我的近解决方案都不是很好,我想知道是否有一个好的方法来做到这一点。
一如既往,我非常感谢社区的意见和反馈。
你能展示一些你的解决方案吗?你可能快到了! – Heroka
查看'tidyr'软件包,例如https://www.rstudio.com/wp-content/uploads/2015/02/data-wrangling-cheatsheet.pdf –
你需要dplyr/tidy包来完成图片 - group_by()在dplyr和spread()在tidyr应该有帮助。 – Gopala