Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用r在列表中插入列表_R_Mongodb - Fatal编程技术网

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

如何使用r在列表中插入列表,r,mongodb,R,Mongodb,我有一张像这样的照片 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 = 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)) 
            {
            "name" : 'leo',
            "vehicle" : 2,
            "car" : 1,
            "bike" : 1,
            "bicycle" : 1,
            "lorry" : 0
        }
df

当我使用R将上述df插入MongoDB时,JSON代码如下所示

         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)) 
            {
            "name" : 'leo',
            "vehicle" : 2,
            "car" : 1,
            "bike" : 1,
            "bicycle" : 1,
            "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') 
其中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
当数据插入mongoDB JSON时,根据需要如下所示:

    {
        "_id" : ObjectId("5a4107ccff03e12bf800141c"),
        "name" : "leo",
        "vehicle" : 2.0,
        "Total_Vehicles" : {
            "car" : 1.0,
            "bike" : 1.0,
            "bicycle" : 0.0,
            "lorry" : 0.0
        }
    },
    {
        "_id" : ObjectId("5a4107ccff03e12bf800141d"),
        "name" : "brad",
        "vehicle" : 3.0,
        "Total_Vehicles" : {
            "car" : 1.0,
            "bike" : 0.0,
            "bicycle" : 1.0,
            "lorry" : 1.0
        }
    },
    {
        "_id" : ObjectId("5a4107ccff03e12bf800141e"),
        "name" : "musk",
        "vehicle" : 3.0,
        "Total_Vehicles" : {
            "car" : 0.0,
            "bike" : 1.0,
            "bicycle" : 1.0,
            "lorry" : 1.0
        }
    },
    {
        "_id" : ObjectId("5a4107ccff03e12bf800141f"),
        "name" : "uma",
        "vehicle" : 3.0,
        "Total_Vehicles" : {
            "car" : 0.0,
            "bike" : 1.0,
            "bicycle" : 1.0,
            "lorry" : 0.0
        }
    }

我想你是说
tidyr::nest()
purrr::nest
不存在)。您可以添加
%%>%jsonlite::toJSON(pretty=T)
以所需的JSON格式显示它
        df1 = df[,c('name','vehicle')]



        df1$Total_Vehicles = df[,c('car','bike','bicycle','lorry')]



        > df1
          name vehicle Total_Vehicles.car Total_Vehicles.bike
        1  leo       2                  1                   1
        2 brad       3                  1                   0
        3 musk       3                  0                   1
        4 uma       3                  0                   1
          Total_Vehicles.bicycle Total_Vehicles.lorry
        1                      0                    0
        2                      1                    1
        3                      1                    1
        4                      1                    0



        > str(df1)
        'data.frame':   4 obs. of  3 variables:
         $ name          : Factor w/ 4 levels "brad","leo","uma",..: 2 1 4 3
         $ vehicle       : num  2 3 3 3
         $ Total_Vehicles:'data.frame': 4 obs. of  4 variables:
          ..$ car    : num  1 1 0 0
          ..$ bike   : num  1 0 1 1
          ..$ bicycle: num  0 1 1 1
          ..$ lorry  : num  0 1 1 0
    {
        "_id" : ObjectId("5a4107ccff03e12bf800141c"),
        "name" : "leo",
        "vehicle" : 2.0,
        "Total_Vehicles" : {
            "car" : 1.0,
            "bike" : 1.0,
            "bicycle" : 0.0,
            "lorry" : 0.0
        }
    },
    {
        "_id" : ObjectId("5a4107ccff03e12bf800141d"),
        "name" : "brad",
        "vehicle" : 3.0,
        "Total_Vehicles" : {
            "car" : 1.0,
            "bike" : 0.0,
            "bicycle" : 1.0,
            "lorry" : 1.0
        }
    },
    {
        "_id" : ObjectId("5a4107ccff03e12bf800141e"),
        "name" : "musk",
        "vehicle" : 3.0,
        "Total_Vehicles" : {
            "car" : 0.0,
            "bike" : 1.0,
            "bicycle" : 1.0,
            "lorry" : 1.0
        }
    },
    {
        "_id" : ObjectId("5a4107ccff03e12bf800141f"),
        "name" : "uma",
        "vehicle" : 3.0,
        "Total_Vehicles" : {
            "car" : 0.0,
            "bike" : 1.0,
            "bicycle" : 1.0,
            "lorry" : 0.0
        }
    }