创建一个新列,该列是dplyr中特定列(按其名称选择)的总和 [英] create a new column which is the sum of specific columns (selected by their names) in dplyr

查看:8
本文介绍了创建一个新列,该列是dplyr中特定列(按其名称选择)的总和的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

iris %>% mutate(Petal = Petal.Length+Petal.Width)
现在假设我有一个包含20列的数据集,这些列的名称中包含"Petal"。我想创建一个"花瓣"栏目,它总结了所有这些栏目。我绝对不想在代码中键入所有列名。感觉在dplyr中只需一行代码就可以实现。 如果有人能帮上忙,我将不胜感激。

推荐答案

我同意Flick先生的观点,即整理您的数据更可取-尤其是如果您要执行任何操作,而不是对这些列求和-但这里有一个选项:

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()帮助器选项。

这篇关于创建一个新列,该列是dplyr中特定列(按其名称选择)的总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆