我的问题是如何创建一个新列,该列是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/