r语言 - 分割作为字典的列



我有一个数据框架,大约有200,000行,列如下:

字典列2{"1720100":5,"1720101":1,"1720102":2}{"1720100":4,"1720101":2}

看起来您可能想要从列中提取json,使用jsonlite包。您可以将数据放入更长的格式,因为json包含两列。然后用更多的旋转得到想要的最终格式。最终的select只是根据列名中包含的数字重新排序列的值。

library(tidyverse)
library(jsonlite)
df %>%
pivot_longer(cols = -ID) %>%
mutate(json_parsed = map(value, ~fromJSON(sprintf("[%s]", .), flatten = T))) %>%
unnest(json_parsed) %>%
pivot_longer(cols = -c(ID, name, value), names_to = "n", values_to = "v") %>%
pivot_wider(id_cols = ID, values_from = c(n, v), values_fn = list) %>%
unnest(cols = -ID) %>%
select(ID, order(parse_number(names(.)[-1])) + 1)

ID n_dictionary_column_1 v_dictionary_column_1 n_dictionary_column_2 v_dictionary_column_2
<dbl> <chr>                                 <int> <chr>                                 <int>
1     1 1720100                                   4 1720100                                   5
2     1 1720101                                   3 1720101                                   1
3     1 1720102                                  NA 1720102                                   2
4     2 1720100                                   4 1720100                                   4
5     2 1720101                                  NA 1720101                                   2
6     2 1720102                                  NA 1720102                                  NA

相关内容

  • 没有找到相关文章

最新更新