我的问题是如何创建一个新列,它是dplyr中某些特定列(由其名称选择)的总和 . 例如,使用iris数据集,我创建一个名为Petal的新列,它是Petal.Length和Petal.Width的总和 .
iris %>% mutate(Petal = Petal.Length+Petal.Width)
现在假设我有一个20列的数据集,其名称中包含'Petal' . 我想创建一个“Petal”列,它总结了所有这些列 . 我绝对不想在我的代码中键入所有列名称 . 感觉在dplyr中应该有一行代码可以实现 . 感谢是否有人可以提供帮助 .
2 回答
我同意MrFlick的说法,整理你的数据是可取的 - 特别是如果你想做除了这些列之外的任何事情 - 但这里有一个选择:
有关选择列的信息,请参阅
starts_with()
以外的?select
辅助选项 .更一般地,为每个观察创建一个键(例如,使用下面的
mutate
的行号),将感兴趣的列移动到两列中,一列保存列名,另一列保存值(使用下面的melt
),group_by
观察,以及做你想做的任何计算 . 下面,我使用mutate
添加一列,该列对包含单词'Petal'的所有列进行求和,最后删除我不想要的任何变量(使用select
) .虽然可以缩短上述内容,但我认为这个版本会提供一些指导 .