r - 如何使用 r 在列表中插入列表

标签 r mongodb

我有 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/

相关文章:

r - 通过 .rmd 或 Shiny 在本地 .html 上进行交互式绘图

r - 如何从不均匀的二维位置插值到规则网格?

r - 如何将多个 ggplots 与常见的 x 和 y 标签以及常见的图例组合在单页上?

javascript - mongodb:无法使用谷歌云功能将Many插入到MongoDB Atlas服务器

node.js - 当我从 Mongoose 查询时,MongoDB 超时

javascript - 如何在 mongodb 中查询对象数组

json - API 设计 : Which is better: returning null for empty values or nothing

r - 从 R 调用 Stata 函数

r - R 中的传单未显示可变圆圈颜色

node.js - Express mongoose 从 POST 填充子文档数组