我有 df 看起来像这样
df = data.frame(
name = c('leo','brad','musk','mark'),
vehicle = c(2,3,3,3),
car = c(1,1,0,0),
bike = c(1,0,1,1),
bicycle = c(0,1,1,1),
lorry = c(0,1,1,0))
df
name vehicle car bike bicycle lorry
leo 2 1 1 0 0
musk 3 1 0 1 1
mark 3 0 1 1 1
uma 3 0 1 1 0
当我使用 R 将上面的 df 插入 MongoDB 时,JSON 代码如下所示
{
"name" : 'leo',
"vehicle" : 2,
"car" : 1,
"bike" : 1,
"bicycle" : 1,
"lorry" : 0
}
但我希望它是这样的(就像列表中的列表)
{
"name" : 'leo',
"vehicle" : 2,
"Total Vehicles": [
{"car" : 1},
{"bike" : 1},
{"bicycle" : 0},
{"lorry" : 0}
]
}
在r里,我试过了
cee = df[,c(1,2)]
com = list(df[,-c(1,2)])
see = append(cee, com)
sea = list(var = df[,c(1,2)], comment = df[,-c(1,2)])
如果答案已经可用。请给我链接。谢谢
最佳答案
也许 tidyr::nest()
会根据需要创建对象?它可以使用 unnest()
df1
name vehicle car bike bicycle lorry
1 leo 2 1 1 0 0
2 musk 3 1 0 1 1
3 mark 3 0 1 1 1
4 uma 3 0 1 1 0
df2
df2 <- df1 %>%
nest(car:lorry, .key = 'total_vehicles')
结果...
name vehicle total_vehicles
1 leo 2 1, 1, 0, 0
2 musk 3 1, 0, 1, 1
3 mark 3 0, 1, 1, 1
4 uma 3 0, 1, 1, 0
其中 total_vehicles 是列表列
str(df2)
'data.frame': 4 obs. of 3 variables:
$ name : Factor w/ 4 levels "leo","mark","musk",..: 1 3 2 4
$ vehicle : int 2 3 3 3
$ total_vehicles:List of 4
..$ :'data.frame': 1 obs. of 4 variables:
.. ..$ car : int 1
.. ..$ bike : int 1
.. ..$ bicycle: int 0
.. ..$ lorry : int 0
..$ :'data.frame': 1 obs. of 4 variables:
.. ..$ car : int 1
.. ..$ bike : int 0
.. ..$ bicycle: int 1
.. ..$ lorry : int 1
..$ :'data.frame': 1 obs. of 4 variables:
.. ..$ car : int 0
.. ..$ bike : int 1
.. ..$ bicycle: int 1
.. ..$ lorry : int 1
..$ :'data.frame': 1 obs. of 4 variables:
.. ..$ car : int 0
.. ..$ bike : int 1
.. ..$ bicycle: int 1
.. ..$ lorry : int 0
关于r - 如何使用 r 在列表中插入列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47620131/