Чтобы получить объект { }
, ваш allmonths
должен быть столбцом типа data.frame
, а не list
.
Принимая ваш пример
library(dplyr)
my.data <- structure(list(`_id` = c(10138L, 9466L, 9390L), firstName = c("Alex", "Quincy", "Steven"), lastName = c("Abrines", "Acy", "Adams"),
birthCity = c("Palma de Mallorca", "Tyler, TX", "Rotorua"
), birthCountry = c("Spain", "USA", "New Zealand")), row.names = c(NA,
3L), class = "data.frame")
my.data
inner.df <- structure(list(jerseyNumber = 40L, weight = 240L, age = 21L), class = "data.frame", row.names = 485L)
num.vector <- c(1,3,5,7)
# add a list of the numbers to inner df
inner.df$shotIDs = list(num.vector)
Если вы сейчас добавите свой inner.df
в виде столбца (нужно повторить его, потому что вам нужно 3 строки, чтобы соответствовать вашему my.data
)
my.data$allmonths <- inner.df[rep(1,3), ]
А затем просмотрите JSON, который он производит, и увидите, что вы получаете allmonths: { }
объект
substr( jsonlite::toJSON( my.data ), 1, 196 )
# [{"_id":10138,"firstName":"Alex","lastName":"Abrines","birthCity":"Palma de Mallorca","birthCountry":"Spain",
# "allmonths":{"jerseyNumber":40,"weight":240,"age":21,"shotIDs":[1,3,5,7],"_row":"485"}
# }
В стороне
Часто полезно создать JSON you 'после этого, затем позвоните fromJSON
, чтобы увидеть структуру R, к которой вы должны стремиться
js <- '
[{"_id":10138,"firstName":"Alex","lastName":"Abrines","birthCity":"Palma de Mallorca","birthCountry":"Spain","allmonths":{"jerseyNumber":40,"weight":240,"age":21,"shotIDs":[1,3,5,7],"_row":"485"}},{"_id":9466,"firstName":"Quincy","lastName":"Acy","birthCity":"Tyler, TX","birthCountry":"USA","allmonths":{"jerseyNumber":40,"weight":240,"age":21,"shotIDs":[1,3,5,7],"_row":"485.1"}},{"_id":9390,"firstName":"Steven","lastName":"Adams","birthCity":"Rotorua","birthCountry":"New Zealand","allmonths":{"jerseyNumber":40,"weight":240,"age":21,"shotIDs":[1,3,5,7],"_row":"485.2"}}]
'
str( jsonlite::fromJSON( js ) )
# 'data.frame': 3 obs. of 6 variables:
# $ _id : int 10138 9466 9390
# $ firstName : chr "Alex" "Quincy" "Steven"
# $ lastName : chr "Abrines" "Acy" "Adams"
# $ birthCity : chr "Palma de Mallorca" "Tyler, TX" "Rotorua"
# $ birthCountry: chr "Spain" "USA" "New Zealand"
# $ allmonths :'data.frame': 3 obs. of 4 variables:
# ..$ jerseyNumber: int 40 40 40
# ..$ weight : int 240 240 240
# ..$ age : int 21 21 21
# ..$ shotIDs :List of 3
# .. ..$ : int 1 3 5 7
# .. ..$ : int 1 3 5 7
# .. ..$ : int 1 3 5 7