【发布时间】:2016-07-01 11:18:17
【问题描述】:
我有一个 data.frame 和 key/value string 列,其中包含有关一组用户的功能及其值的信息。像这样的:
data<-data.frame(id=1:3,statid=c("s003e","s093u","s085t"),str=c("a:1,7:2","a:1,c:4","a:3,b:5,c:33"))
data
# id statid str
# 1 1 s003e a:1,7:2
# 2 2 s093u a:1,c:4
# 3 3 s085t a:3,b:5,c:33
我要做的是为每个功能创建一个包含列的 data.frame。像这样:
data_after<-data.frame(id=1:3,statid=c("s003e","s093u","s085t"),
a=c(1,1,3),b=c(0,0,5),c=c(0,4,33),"7"=c(2,0,0))
data_after
# id statid a b c X7
# 1 1 s003e 1 0 0 2
# 2 2 s093u 1 0 4 0
# 3 3 s085t 3 5 33 0
我试图使用stringr 包中的str_split,然后将创建的列表的元素转换为data.frames(稍后使用例如rbind.fill 和plyr 绑定它们)但无法做到。任何帮助将不胜感激!
【问题讨论】:
-
见
splitstackshape包。
标签: r split multiple-columns key-value