R 在数据框中的列中拆分嵌套列表

R 在数据框中的列中拆分嵌套列表,r,R,下面是R中的数据帧,其中第二列是字符向量: COlA COlB 1 list(ved = "19", ved_name = "No", vedd = "11") 2 list(ved = c("65", "83", "2"), ved_name = c("At", "Re", "Rum&quo

下面是R中的数据帧,其中第二列是字符向量:

COlA     COlB
  1      list(ved = "19", ved_name = "No", vedd = "11")
  2      list(ved = c("65", "83", "2"), ved_name = c("At", "Re", "Rum"), vedd = c("11", "11", "11"))
如何将这些数据转换为下面的预期输出

预期产量

COlA       COlB-ved         COlB-ved_name              COlB-vedd
1               19                   No                       11
2               65                   At                       11
2               83                   Re                       11
2                2                  Rum                       11
资料

df首先需要以字符格式解析和评估R表达式,然后取消它们的测试:

图书馆弹琴 图书馆三年 df$COlB%unnest_AUTOCLB%>%unnestcols=cved,ved_名称,vedd >使用“unnest_widerCOlB”;元素共有3个名称 >一个tibble:4x4 >可口可乐ved_name vedd > >11911号 >2 65点11分 >3 2 83 Re 11 >4 2朗姆酒11 由v0.3.0于2020-09-05创建,您首先需要以字符格式解析和评估R表达式,然后取消它们的测试:

图书馆弹琴 图书馆三年 df$COlB%unnest_AUTOCLB%>%unnestcols=cved,ved_名称,vedd >使用“unnest_widerCOlB”;元素共有3个名称 >一个tibble:4x4 >可口可乐ved_name vedd > >11911号 >2 65点11分 >3 2 83 Re 11 >4 2朗姆酒11
由v0.3.0于2020-09-05创建,这里是一个基本R选项

do.call(
  rbind,
  c(
    make.row.names = FALSE,
    lapply(split(df, seq(nrow(df))), function(v) cbind(v[1], eval(str2expression(v$COlB))))
  )
)

  COlA ved ved_name vedd
1    1  19       No   11
2    2  65       At   11
3    2  83       Re   11
4    2   2      Rum   11

这是一个基本的R选项

do.call(
  rbind,
  c(
    make.row.names = FALSE,
    lapply(split(df, seq(nrow(df))), function(v) cbind(v[1], eval(str2expression(v$COlB))))
  )
)

  COlA ved ved_name vedd
1    1  19       No   11
2    2  65       At   11
3    2  83       Re   11
4    2   2      Rum   11
完整性数据表解决方案:

setDT(df)
df[, eval(str2expression(COlB)), by = COlA]
#    COlA ved ved_name vedd
# 1:    1  19       No   11
# 2:    2  65       At   11
# 3:    2  83       Re   11
# 4:    2   2      Rum   11
完整性数据表解决方案:

setDT(df)
df[, eval(str2expression(COlB)), by = COlA]
#    COlA ved ved_name vedd
# 1:    1  19       No   11
# 2:    2  65       At   11
# 3:    2  83       Re   11
# 4:    2   2      Rum   11

非常感谢。但实际上她的ColB不是一个嵌套列表。这就是性格。这里是结构列表cola=c1,2,COlB=clistved=\19\,ved_name=\No\,vedd=\11\,listved=c\65\,\83\,\2\,ved_name=c\At\,\Re\,\Rum\,vedd=c\11\,\11\,row.names=cNA,-2L,class=ctbl df,tbl,data.frame@Vinod谢谢。请看我的更新。最好将您的dput包含在问题中,因为不清楚数据的格式,这导致您的问题被关闭。我已经投票决定重新开放它。如果这解决了你的问题,请考虑将答案标记为已接受。谢谢,非常感谢。但实际上她的ColB不是一个嵌套列表。这就是性格。这里是结构列表cola=c1,2,COlB=clistved=\19\,ved_name=\No\,vedd=\11\,listved=c\65\,\83\,\2\,ved_name=c\At\,\Re\,\Rum\,vedd=c\11\,\11\,row.names=cNA,-2L,class=ctbl df,tbl,data.frame@Vinod谢谢。请看我的更新。最好将您的dput包含在问题中,因为不清楚数据的格式,这导致您的问题被关闭。我已经投票决定重新开放它。如果这解决了你的问题,请考虑将答案标记为已接受。非常感谢。