我有一个数据框,其中有一列包含 json(即 str)数组
"[\n \"x\", |\"y\"]"
如何获得所有这些数组的长度?
我尝试过:
data_analysis <- data |>
mutate(out=list(fromJSON(get(outcome))))
这给了我一列小标题,我可以做
length(data_analysis$out[[87]])
获取第 87 个元素的列表长度,但如何在管道中应用它。
还有很多 json 是
"[]"
非常感谢。
如果您正在查找每个字符串隐含的 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