使用 dplyr/tidyverse 获取 json 数组的长度

问题描述 投票:0回答:1

我有一个数据框,其中有一列包含 json(即 str)数组

"[\n \"x\", |\"y\"]"

如何获得所有这些数组的长度?

我尝试过:

data_analysis  <- data  |>
    mutate(out=list(fromJSON(get(outcome))))

这给了我一列小标题,我可以做

length(data_analysis$out[[87]])

获取第 87 个元素的列表长度,但如何在管道中应用它。

还有很多 json 是

"[]"

非常感谢。

r json dplyr
1个回答
0
投票

如果您正在查找每个字符串隐含的 json 数组的长度,那么您可以在感兴趣的列上使用

lengths
函数
lapply
后使用
fromJSON

library(tidyverse)

data <- data.frame(outcome = c("[\n \"x\", \"y\"]",
                               "[\n \"x\", \"y\", \"z\"]",
                               "[\n \"x\", \"y\"]"))

data %>%
  mutate(out = lengths(lapply(outcome, jsonlite::fromJSON)))
#>              outcome out
#> 1      [\n "x", "y"]   2
#> 2 [\n "x", "y", "z"]   3
#> 3      [\n "x", "y"]   2
© www.soinside.com 2019 - 2024. All rights reserved.