问:有没有办法分离多个嵌套的列,并使用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是单独的几行?
提前谢谢您.