r - 创建一个新列,该列是dplyr中特定列(按其名称选择)的总和

标签 r dplyr tidyverse

我的问题是如何创建一个新列,该列是dplyr中某些特定列(按其名称选择)的总和。
例如,对于虹膜数据集,我创建了一个名为Petal的新列,该列是Petal.Length和Petal.Width的总和。

iris %>% mutate(Petal = Petal.Length+Petal.Width)

现在想象一下,我有一个数据集,该数据集的名称中有20列带有“花瓣”的列。我想创建一个列“Petal”,对所有这些列进行汇总。我绝对不想在我的代码中键入所有列名称。感觉到dplyr中的一行代码应该可以实现。
感谢任何人都可以提供帮助。

最佳答案

我同意MrFlick的观点,认为整理数据是可取的-尤其是如果您想除对这些列求和之外还要做其他事情-但这是一种选择:

iris %>% mutate(
   Petal = rowSums(select(., starts_with("Petal")))
)

    Sepal.Length Sepal.Width Petal.Length Petal.Width    Species Petal
1            5.1         3.5          1.4         0.2     setosa   1.6
2            4.9         3.0          1.4         0.2     setosa   1.6
3            4.7         3.2          1.3         0.2     setosa   1.5
4            4.6         3.1          1.5         0.2     setosa   1.7
5            5.0         3.6          1.4         0.2     setosa   1.6
...

请参阅?select以外的starts_with()帮助器选项来选择列。

关于r - 创建一个新列,该列是dplyr中特定列(按其名称选择)的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47759347/

相关文章:

r - 在 R 4.0.2 (conda-forge) 中安装 rsvg 库

当列名在别处预定义时,R data.table 在条件子集设置方面苦苦挣扎

r - 如何基于列聚合数据

r - 循环跨列相乘

r - 使用 group_rows 与 kableExtra 进行列对齐

r - 仅选择与特定字符串匹配的行

r - 如何根据字符串的匹配部分合并R中的两个数据帧?

r - 如何使 RMarkdown (.Rmd) 表格标题位于顶部

r - 参数和 NULL

r - 如何使用 tidyverse 中使用多个变量的传播函数?