如何在dplyr的rowwise()中引用列范围而非枚举列名?
在dplyr rowwise()中引用列范围的解决方案
当然可以实现!在dplyr的rowwise()上下文里,你完全不用枚举所有列名,用c_across()这个专门为行操作设计的函数,就能轻松引用列范围。
直接修改你的示例代码,用c_across(1:7)指代前7列即可:
mtcars %>% rowwise() %>% mutate(sillyMetric = mean(c_across(1:7))) %>% pull(sillyMetric)
除了用索引范围1:7,c_across()还支持所有dplyr的列选择语法,比如:
- 按列名范围:
c_across(mpg:qsec)(对应mtcars里从mpg到qsec的连续列) - 用列选择辅助函数:
c_across(starts_with("m"))、c_across(where(is.numeric))
这些写法都能在rowwise()里正常工作,帮你彻底告别繁琐的列名枚举。
内容的提问来源于stack exchange,提问作者Gopala
相关产品推荐
相关产品推荐

