Добавить столбец JSON в R-фрейм данных - PullRequest
3 голосов
/ 20 апреля 2020

У меня есть фрейм данных, и я хочу добавить дополнительный столбец, содержащий данные для каждой строки в формате JSON. В этом примере:

dfr = data.frame(name = c("Andrew", "Mathew", "Dany", "Philip", "John", "Bing", "Monica"), age = c(28, 23, 49, 29, 38, 23, 29))

dfr %>% mutate(Payload = jsonlite::toJSON(dfr))

Я хотел бы получить

Andrew  28   {"name":"Andrew","age":28}
Mathew  23   {"name":"Mathew","age":23}

Вместо этого я получаю в строке JSON строку для полного фрейма данных. Я попробовал это с apply, но мне не удалось запустить его.

1 Ответ

4 голосов
/ 20 апреля 2020

Попробуйте выполнить для каждой строки: разбить каждую строку, затем применить к JSON функцию:

dfr$Payload <- sapply(split(dfr, seq(nrow(dfr))), toJSON)

dfr
#     name age                      Payload
# 1 Andrew  28 [{"name":"Andrew","age":28}]
# 2 Mathew  23 [{"name":"Mathew","age":23}]
# 3   Dany  49   [{"name":"Dany","age":49}]
# 4 Philip  29 [{"name":"Philip","age":29}]
# 5   John  38   [{"name":"John","age":38}]
# 6   Bing  23   [{"name":"Bing","age":23}]
# 7 Monica  29 [{"name":"Monica","age":29}]
...