繁体   English   中英

我们可以使用 tidyverse::tibble 中的 add_row 和 cross

[英]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_rowssummarisejanitorpivottablerkable等)来添加所有数字列的总数,而不用硬编码它们的名称。 across东西。 这甚至可能吗?

我正在寻找add_row() function 的未来可能用例,我现在还没有使用过,所以我对替代方法不感兴趣

更新我只是这样做了

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', .)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM