问:有没有办法分离多个嵌套的列,并使用BASE R和TYDYVERS同时清理它们?我判断了此处的其他嵌套响应,但似乎都不符合.

我的嵌套框架具有遵循以下格式的嵌套数据.

V1为类型=双精度,V2为类型=字符

my_df
    v1      v2
1   1234    {"484391115444":192,"484391115442":61}
2   1235    {"484391115432":52,"484391115443":24}
3   1236    {"484391115302":11,"484391115161":10}

我能够使用tidyr::分隔为:分隔(最多10个):

my_df <- tidyr::separate(my_df, col=v2, into=c("v2_01", "v2_02"), sep = ",")

在实际数据中,v2的长度是可变的,这意味着每行的嵌套数据量不同.这不是一个问题,因为我真的只需要v2的前10个值存储在列中,在我分离之后,其余的被截断,以及结束字符.到目前为止一切顺利.

这会产生以下结果:

    v1      v2_01               v2_02
1   1234    {"484391115444":192 "484391115442":61
2   1235    {"484391115432":52  "484391115443":24
3   1236    {"484391115302":11  "484391115161":10

现在我需要清理它(删除{和"字符),并在冒号上再次分隔. 我可以作为单独的命令执行此操作:

my_df$v2_01 <- gsub("\\{","", as.character(my_df$v2_01))
my_df$v2_01 <- gsub('"',"", as.character(my_df$v2_01))

#在":"字符上分隔

my_df <- tidyr::separate(my_df, col=v2_01, into=c("v2_01", "v2_01_Num" ,sep = ":"))

这会产生以下结果:

    v1      v2_01           v2_01_Num   v2_02           v2_02_Num   :
1   1234    484391115444    92          484391115442    61          :
2   1235    484391115432    52          484391115443    24          :
3   1236    484391115302    11          484391115161    10          :

到目前为止,meh,我现在得到了":"列.这是最好的功能.

我的问题如下: 有没有办法让我同时分离多个柱子并清洗它们?我现在也将":"列作为输出.我对R中的循环有点不熟悉,但手动逐列遍历并分离出10个变量似乎非常乏味和低效.上面的代码确实可以工作,但我有另一个数据帧 其中包含嵌套数据的列有几十列.

也许tidyverse是单独的几行?

提前谢谢您.

推荐答案

您实际上拥有dat$V2个字符串中的JSON数据,因此您可以使用类似jsonlite的包以合理的格式导入它们:

library(jsonlite)
si <- stream_in(textConnection(dat$v2), simplifyVector=FALSE)
dat[paste("v2", seq_along(si[[1]]), sep="_")] <- t(sapply(si, names))
dat[paste("v2", seq_along(si[[1]]), "num", sep="_")] <- do.call(Map, c(c, si))
dat

##    v1                                     v2         v2_1         v2_2 v2_1_num v2_2_num
##1 1234 {"484391115444":192,"484391115442":61} 484391115444 484391115442      192       61
##2 1235  {"484391115432":52,"484391115443":24} 484391115432 484391115443       52       24
##3 1236  {"484391115302":11,"484391115161":10} 484391115302 484391115161       11       10

R相关问答推荐

self_函数无法工作--无法子集结束后的列

使用R中的gt对R中的html rmarkdown文件进行条件格式设置表的单元格

基于多列将值链接到NA

R Sapply函数产生的值似乎与for循环方法略有不同

S用事件解决物质平衡问题

如何在Chart_Series()中更改轴值的 colored颜色 ?

汇总数据表中两个特定列条目的值

移除仪表板Quarto中顶盖和车身之间的白色区域

从外部文件读取多个值作为字符向量

在R gggplot2中是否有一种方法将绘图轴转换成连续的 colored颜色 尺度?

如何对2个列表元素的所有组合进行操作?

来自程序包AFEX和amp;的类/函数和NICE_TABLE&冲突

Geom_arcbar()中出错:找不到函数";geom_arcbar";

如何删除设置大小的曲线图并添加条形图顶部数字的百分比

防止正则表达式覆盖以前的语句

R仅当存在列时才发生变异

网络抓取新闻标题和时间

R-使用stri_trans_General()将其音译为德语字母

以R表示的NaN值的IS.NA状态

对数据帧中的列进行子集设置以通过迭代创建新的数据帧