От dataFrame к сгруппированному Json в R

У меня есть фрейм данных в R:

ID   var1  var2 
1    12    Name1
1    13    Name4
2    13    Name2
3    14    Name3

и я хочу преобразовать в json группировку тех, которые имеют одинаковый идентификатор:

{
"group":
[
{"ID" : 1, "var1": 12, "var2": "Name1" },
{"ID" : 1, "var1": 13, "var2": "Name4" }
]
},
{
"group":
[
{"ID" : 2, "var1": 13, "var2": "Name2" }
]
},
{
"group":
[
{"ID" : 3, "var1": 14, "var2": "Name3" }
]
}

Я также хочу сохранить каждую группу в файле .json, поэтому для приведенного выше примера у меня будет 3 файла .json.

Но я не могу найти способ сделать это, ни смонтировать json, как я хочу, ни сохранить каждую группу отдельно в файле .json.

Буду признателен за любую помощь :-)

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
143
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Мы можем использовать jsonlite

library(jsonlite)
library(purrr)
lst1 <-  map(split(df1, df1$ID), toJSON)
names(lst1) <- paste0('group', names(lst1))
toJSON(lst1)

Я тестировал с dataFrame: df1 <- data.frame("CPF" = c(1,1, 2), "accountNumber" = c(1843320, 1843321, 1218514) , "coop" = c(116, 116, 116), "statement" = c("a","a", "a"), "brand" = c("Name","Name1","Name2")) И результат не сгруппировал те, у которых одинаковый идентификатор, а также имя «группа», «группа.1» и «группа.2», но я должен иметь только «группу» на все имена. У вас есть какие-нибудь идеи о том, как изменить свой код?: D И большое спасибо кстати: D

Catarina Nogueira 29.05.2019 19:55

. @CatarinaNogueira Я показал подписку на приведенном вами примере. это совсем другой пример

akrun 29.05.2019 19:58

Здесь я не знаю, какой из них является идентификатором и ожидаемым результатом.

akrun 29.05.2019 20:02

Хорошо, используя точный пример, который я предоставил, который вы добавили туда, вы можете видеть, что идентификатор «1» находится в разных группах, но я должен иметь их вместе в одной группе, извините, если это не было ясности в вопросе :( . Также идентификатор "groups" меняет свое имя, и я желаю всем такое же имя, как на моем примере. Вы не знаете, как изменить свой код, чтобы сделать это? Большое спасибо!! :D

Catarina Nogueira 29.05.2019 20:05

@CatarinaNogueira ключевые элементы могут иметь только уникальные ключи. В противном случае, как вы собираетесь извлекать значения из одного и того же ключа, когда значения разные

akrun 29.05.2019 20:06

ожидаемый результат: {"group": ["{"ID":1,"var":12,"var2":"Name1"}", "{"ID":1,"var":13,"var2":"Name4"}"]}, {"group": ["{"ID":2,"var":13,"var2":"Name2"}"]}, {"group": ["{"ID":3,"var":14,"var2":"Name3"}"]}

Catarina Nogueira 29.05.2019 20:07

@CatarinaNogueira Хорошо, понял. Можешь проверить обновление

akrun 29.05.2019 20:10

Ой, спасибо! Я бы никогда не знал, как это сделать! Я просто не понимаю, почему косая черта впереди в кавычках :)

Catarina Nogueira 29.05.2019 20:13

@CatarinaNogueira Если вы это сделаете cat, он будет напечатан без него.

akrun 29.05.2019 20:16

Другие вопросы по теме