当前位置: 首页 > 知识库问答 >
问题:

变异和/或总结动态数目的列

刁文光
2023-03-14

在前面的一个问题中,我希望用动态数量的事例执行case_when。解决方案是使用parse_exprs!!!。我正在寻找一个类似的解决方案,以变异/总结与动态数量的列。

考虑以下数据集。

library(dplyr)
library(rlang)
data(mtcars)
mtcars = mtcars %>%
  mutate(g2 = ifelse(gear == 2, 1, 0),
         g3 = ifelse(gear == 3, 1, 0),
         g4 = ifelse(gear == 4, 1, 0))
answer = mtcars %>%
  summarise(sum_g2 = sum(g2),
            sum_g3 = sum(g3),
            sum_g4 = sum(g4))
columns_to_sum = c("g2","g3","g4")

formulas = paste0("sum_",columns_to_sum," = sum(",columns_to_sum,")")

answer = mtcars %>%
  summarise(!!!parse_exprs(formulas))

共有1个答案

杜英叡
2023-03-14

DPLYR 1.0.0以来的一个选择是:

mtcars %>%
 summarise(across(all_of(columns_to_sum), sum, .names = "sum_{col}"))

  sum_g2 sum_g3 sum_g4
1      0     15     12
 类似资料:
  • 本文向大家介绍Java静态代理和动态代理总结,包括了Java静态代理和动态代理总结的使用技巧和注意事项,需要的朋友参考一下 静态代理 第一种实现(基于接口): 1》接口 2》目标类,至少实现一个接口 3》代理类(与目标类实现相同接口,从而保证功能一致) 3》测试 第二种实现(基于目标类): 1>目标类 2>代理类(通过继承目标类,保证功能一致) 3>测试 动态代理 动态代理的代理类是在程序运行期间

  • 本文向大家介绍C语言中获取和改变目录的相关函数总结,包括了C语言中获取和改变目录的相关函数总结的使用技巧和注意事项,需要的朋友参考一下 C语言getcwd()函数:取得当前的工作目录 头文件: 定义函数: 函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小。 注: 1、在调用此函数时,buf 所指的内存空间要足够大。若工作目录绝

  • 我想在render()中动态生成输出,但遇到了一个非常奇怪的情况。我有一个使用fetch()从数据库检索数据的过程。一旦得到数据,我就确定数据记录的数量,然后执行for循环,用返回的数据填充数组。在for循环之前有一个console.log()来显示数据接收数组的内容,在填充接收数组时还有另一个console.log()。出于某种原因,在填充数组的特定引用时,数组的所有引用似乎都在更改。这是我的全

  • 本文向大家介绍java 动态代理的方法总结,包括了java 动态代理的方法总结的使用技巧和注意事项,需要的朋友参考一下 java 动态代理的方法总结 AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生成增强的目标类(该切面逻辑或者在目标类函数执行之前,或者目标类函数执行之后,或者在目标类函数抛出异常时候执行。不同的切入时机对应不同的Interceptor

  • 给予 中这些操作的等价物是什么? 我认为是由

  • 启动参数总结 -h, --help 打印帮助信息 --switch=SWITCH 交换机类型,包括 [kernel user ovsk] --host=HOST 模拟主机类型,包括 [process] --controller=CONTROLLER 控制器类型,包括 [nox_dump none ref remote nox_pysw] --topo=TOPO,arg1,arg2,...argN