在 R 中重建包含带有列表的元素的数据框
Reconstruction of a data frame containing elements with lists in R
假设我有一个包含以下内容的 JSON 文件:
[
{
"x": 3,
"y": [3,4,5]
},
{
"x": 6,
"y": [6,7,8]
}
]
如果使用 jsonlite
R 包中的 fromJSON
函数加载,如下所示:
# Read the JSON data
library(jsonlite)
data <- fromJSON('[{"x":3,"y":[3,4,5]},{"x":6,"y":[6,7,8]}]')
那么 x
和 y
字段可以这样访问:
> data$x
[1] 3 6
> data$y
[[1]]
[1] 3 4 5
[[2]]
[1] 6 7 8
假设我不是已经有了数据框,而是尝试按如下方式构建它:
> x2 <- data$x
> y2 <- data$y
> df <- data.frame(x = x2, y = y2)
Error in data.frame(x = x2, y = y2) :
arguments imply differing number of rows: 2, 3
我们可以看到数据框不能这样重建。如何构建包含列表的数据框?
抱歉,为清楚起见:
> data <- fromJSON('[{"x":3,"y":[3,4,5]},{"x":6,"y":[6,7,8]}]')
> class(data)
[1] "data.frame"
我可以解析JSON来构建数据框,但是我上面使用的方法无法构建数据框。我是 R 的新手,所以我可能在做一些愚蠢的事情。
你可以通过
得到你想要的结构
data.frame(x = data$x, y = I(data$y))
x y
1 3 3, 4, 5
2 6 6, 7, 8
另见 Create a data.frame where a column is a list。
假设我有一个包含以下内容的 JSON 文件:
[
{
"x": 3,
"y": [3,4,5]
},
{
"x": 6,
"y": [6,7,8]
}
]
如果使用 jsonlite
R 包中的 fromJSON
函数加载,如下所示:
# Read the JSON data
library(jsonlite)
data <- fromJSON('[{"x":3,"y":[3,4,5]},{"x":6,"y":[6,7,8]}]')
那么 x
和 y
字段可以这样访问:
> data$x
[1] 3 6
> data$y
[[1]]
[1] 3 4 5
[[2]]
[1] 6 7 8
假设我不是已经有了数据框,而是尝试按如下方式构建它:
> x2 <- data$x
> y2 <- data$y
> df <- data.frame(x = x2, y = y2)
Error in data.frame(x = x2, y = y2) :
arguments imply differing number of rows: 2, 3
我们可以看到数据框不能这样重建。如何构建包含列表的数据框?
抱歉,为清楚起见:
> data <- fromJSON('[{"x":3,"y":[3,4,5]},{"x":6,"y":[6,7,8]}]')
> class(data)
[1] "data.frame"
我可以解析JSON来构建数据框,但是我上面使用的方法无法构建数据框。我是 R 的新手,所以我可能在做一些愚蠢的事情。
你可以通过
得到你想要的结构data.frame(x = data$x, y = I(data$y))
x y
1 3 3, 4, 5
2 6 6, 7, 8
另见 Create a data.frame where a column is a list。