Wpis z mikrobloga

#rlang #r #naukaprogramowania #datascience
Mam w R dataset, ktory w jednej kolumnie zawiera takie dane:
https://i.imgur.com/Xde3Diy.png

Chcę go spłaszczyć, co mogę zrobić w taki sposób
confessions$actions[[1]] ->
https://i.imgur.com/ne61TjV.png

Ale to spłaszczenie tylko pierwszego wiersza w datasecie confessions. W jaki sposób mogę wykonać tę operacje dla każdego wiersza i przypisać wynik do nowej kolumny w datasecie?

btw. jest jakis tag do jezyka r?
Pobierz sokytsinolop - #rlang #r #naukaprogramowania #datascience 
Mam w R dataset, ktory w ...
źródło: comment_1651936532FlUtt5PA0vs1g2ZeGGCHk8.jpg
  • 16
@sokytsinolop:
widzę że zmienna "id" to jest zagnieżdżone data.frame a nie prosty wektor , ale tam jest tylko jedno pole i jakoś się to połączyło

confessions = jsonlite::fromJSON('/tmp/confessions.json')
actions = jsonlite::fromJSON('/tmp/actions.json')

dplyr::left_join(actions, confessions, by = "_id") %>% View
Czy masz jakiś przypadek gdy to nie zadziałało?
@heniek_8: kazdy confession ma w actions tablice id, ktore odpowiadaja id z dateframe actions. czyli chcę zrobic cos takiego merge(confessions$actions[[1]], actions, by.x = "$oid", by.y = "_id") ale dla kazdego elementu w dateframe confessions
@sokytsinolop: wypróbowałem to i co? actions_full zawiera puste wartości
moim zdaniem trzeba się z tym pomęczyć tak:
w confessions, w polu actions jest data.frame 2 rekordy i ten data.frame zawiera pole w którym jest to po czym chcesz łączyć

chyba trzeba by najpierw wyciągnąć te pola z actions, przetransponować żeby id były w jednej kolumnie - co by się wiązało z tym że trzeba by zduplikować rekordy z confessions, po jednym
@sokytsinolop: Też mam takie same wrażenia z używania R. Jakby ktoś wziął z Pythona list comprehension i zrobił z nich cały język.
Jak siedzisz w tym kilka lat to szybko się robi, ale jak nie znasz składni dokładnie na pamięć, to:
(1) ciężko jej się nauczyć (np. te wymiary tablicy [,,2]),
(2) nazwy funkcji są totalnie losowe (np. c to combine, a służy głównie do robienia wektorów albo apply, lapply, tapply,