Я хочу взять несколько строк данных и свернуть их в одну ячейку для каждого уникального идентификатора.Я работаю с довольно грязным, приличным размером фрейма данных, но очень простой пример того, что я пытаюсь сделать, приведен ниже:
mydf = data_frame(x=c(rep("A",3),rep("B",3),rep("C",3)),
y=letters[1:9])
mydf
# A tibble: 9 x 2
x y
<chr> <chr>
1 A a
2 A b
3 A c
4 B d
5 B e
6 B f
7 B g
8 B h
9 B i
Я хочу запустить некоторый код ... в идеале через некоторое использованиеиз tidyverse
, как mydf %>% mutate(y = I'm really not sure, maybe one of the map functions)
, а затем окончательный фрейм данных выглядит следующим образом:
better = data_frame(x=c("A","B","C"),
y=list(c(letters[1:3]),c(letters[4:6]),c(letters[7:9])))
better
# A tibble: 3 x 2
x y
<chr> <list>
1 A <chr [3]>
2 B <chr [4]>
3 C <chr [3]>
better$y
[[1]]
[1] "a" "b" "c"
[[2]]
[1] "d" "e" "f"
[[3]]
[1] "g" "h" "i"
Как упоминалось ранее, мои данные намного больше и грязнее, и, надеюсь, в конечном итоге, в приложении Shinyпоэтому он должен быть полностью автономным, поэтому ищет глубокое понимание функций, доступных для этой работы.Я полагаю, что для этого может потребоваться несколько больше шагов, чем просто mutate
, возможно создание отдельного фрейма данных, аналогичного better
, а затем left_join
его возврат к оригиналу.
Спасибо!