通过列出它们的名称来对列进行求和是相当简单的:
iris %>% rowwise() %>% mutate(sum = sum(Sepal.Length, Sepal.Width, Petal.Length))
但是,假设有更多列,并且您有兴趣提取所有包含“Sepal”的列,而无需手动列出它们。具体来说,我正在寻找一种方法,其方式与 dplyr 中的 select() 允许您使用 contains()、starts_with() 等对列进行子集化相同。
有多种方法可以使用 mutate_all() + sum() + join() 来实现与此查询相同的结果,但我更感兴趣的是看到与以下代码一样接近解决方案的内容:
iris %>% rowwise() %>% mutate(sum = sum(contains(colnames(.), "Sepal")))