我们可以使用 tidyverse::tibble 中的 add_row 吗?
Can we use add_row from tidyverse::tibble with across
假设我需要在数据集的最后使用 add_row
像这样说 iris
!
iris %>% add_row( Species = "Total", Sepal.Length = sum(.$Sepal.Length)) %>% tail(3)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
151 876.5 NA NA NA Total
我的问题是我们如何才能仅使用此方法(我知道其他方法,例如 bind_rows
和 summarise
、janitor
、pivottabler
、kable
等)添加所有数字列的总数,而不对它们的名称进行硬编码。 across
有点东西。这可能吗?
我正在寻找 add_row()
函数的未来可能用例,我到现在为止还没有使用过,所以我对替代方法不感兴趣
更新我就是这样做的
iris %>% add_row(Species = "Total", iris[1:4] %>% summarise(across(everything(), ~sum(.))))
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
151 876.5 458.6 563.7 179.9 Total
有更好的建议吗?
我们可以使用adorn_totals
library(janitor)
library(dplyr)
iris %>%
adorn_totals(col = 'Sepal.Length')
或多列
iris %>%
select(Species, everything()) %>%
adorn_totals() %>%
select(names(iris))
或多列
iris %>%
summarise(across(where(is.numeric), sum)) %>%
add_row(iris, Species = 'Total', .)
假设我需要在数据集的最后使用 add_row
像这样说 iris
!
iris %>% add_row( Species = "Total", Sepal.Length = sum(.$Sepal.Length)) %>% tail(3)
Sepal.Length Sepal.Width Petal.Length Petal.Width Species
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
151 876.5 NA NA NA Total
我的问题是我们如何才能仅使用此方法(我知道其他方法,例如 bind_rows
和 summarise
、janitor
、pivottabler
、kable
等)添加所有数字列的总数,而不对它们的名称进行硬编码。 across
有点东西。这可能吗?
我正在寻找 add_row()
函数的未来可能用例,我到现在为止还没有使用过,所以我对替代方法不感兴趣
更新我就是这样做的
iris %>% add_row(Species = "Total", iris[1:4] %>% summarise(across(everything(), ~sum(.))))
149 6.2 3.4 5.4 2.3 virginica
150 5.9 3.0 5.1 1.8 virginica
151 876.5 458.6 563.7 179.9 Total
有更好的建议吗?
我们可以使用adorn_totals
library(janitor)
library(dplyr)
iris %>%
adorn_totals(col = 'Sepal.Length')
或多列
iris %>%
select(Species, everything()) %>%
adorn_totals() %>%
select(names(iris))
或多列
iris %>%
summarise(across(where(is.numeric), sum)) %>%
add_row(iris, Species = 'Total', .)