首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我们是否可以使用tidyverse::tibble的add_row?

我们是否可以使用tidyverse::tibble的add_row?
EN

Stack Overflow用户
提问于 2021-04-18 17:40:23
回答 1查看 147关注 0票数 1

假设我最后需要使用数据集中的add_row,比如这样的iris

代码语言:javascript
复制
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 with summarisejanitorpivottablerkable等)添加所有数字列的总数,而不对其名称进行硬编码。一些across之类的东西。这有可能吗?

我正在寻找未来可能使用的add_row() 函数用例,因为到目前为止我还没有使用过它,所以我对替代方法不感兴趣。

更新我就这样做了

代码语言:javascript
复制
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

有更好的建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-18 17:42:04

我们可以使用adorn_totals

代码语言:javascript
复制
library(janitor)
library(dplyr)
iris %>% 
   adorn_totals(col = 'Sepal.Length')

或用于多列

代码语言:javascript
复制
iris %>% 
   select(Species, everything()) %>% 
   adorn_totals() %>% 
   select(names(iris))

或用于多列

代码语言:javascript
复制
iris %>% 
   summarise(across(where(is.numeric), sum)) %>% 
   add_row(iris, Species = 'Total', .)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67151606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档