我有以下数据框:
library(tidyverse)
library(tibble)
data_frame <-
tribble(
~a, ~b,
"1", 27,
"1", 29,
"2", 33,
"2", 37
)
我想通过变量a
将此数据帧分组,并在数字矢量中汇总b
的所有值。
但是,我只想出了如何总结字符向量中b
的值,如以下代码所示:
data_frame %>%
group_by(a) %>%
summarise(values = paste(b, collapse = ","))
#> `summarise()` ungrouping output (override with `.groups` argument)
#> # A tibble: 2 x 2
#> a values
#> <chr> <chr>
#> 1 1 27,29
#> 2 2 33,37
如何总结b
中的值,以便最后总结数字向量中b中的值?
答案 0 :(得分:3)
也许您想将数据存储在一个列表中,该列表会将数据保留为数字。
library(dplyr)
data_frame %>% group_by(a) %>% summarise(b = list(b))
# a b
# <chr> <list>
#1 1 <dbl [2]>
#2 2 <dbl [2]>
这也可以在基数R中完成:
aggregate(b~a, data_frame, list)
和data.table
:
library(data.table)
setDT(data_frame)[, .(b = list(b)), a]
答案 1 :(得分:1)
我们可以使用
library(data.table)
setDT(data_frame)[, .(b = .(b)), a]
# a b
#1: 1 27,29
#2: 2 33,37