r - 在 mutate (dplyr) 中创建新的列
问题描述
我有以下名为df的虚拟数据框:
A1 A2 A3 B1 B2 B3 C1 C2 C3
1 1 1 2 2 2 3 3 3
我想将包含相同字母的列汇总到一个新列中(使用相应的字母命名)。
我希望这个结果:
A1 A2 A3 B1 B2 B3 C1 C2 C3 A B C
1 1 1 2 2 2 3 3 3 3 6 9
我知道我可以使用mutate
from来实现这个结果dyplr
:
mutate(df,
A = A1 + A2 + A3,
B = B1 + B2 + B3,
C = C1 + C2 + C3)
有没有办法使用类似向量letters <- c("A", "B", "C")
并在函数内循环该向量来做到这一点mutate
?就像是:
mutate(df,
letters = paste0(letters,"1") + paste0(letters,"2") + paste0(letters,"3") )
解决方案
一种dplyr
解决purrr
方案可能是:
bind_cols(df, map_dfc(.x = LETTERS[1:3],
~ df %>%
transmute(!!.x := rowSums(select(., starts_with(.x))))))
A1 A2 A3 B1 B2 B3 C1 C2 C3 A B C
1 1 1 1 2 2 2 3 3 3 3 6 9
推荐阅读
- javascript - 使用 Ajax 在完整日历上显示数据而不显示记录
- c++ - 我如何获取引脚 4 的值以发送到从机并使用 I2C 显示?
- javascript - 是否可以使用 flatbuffers 将序列化数据流式传输到文件中?
- r - 我想模拟具有不同样本大小 n、不同 SD 值和不同 theta 值的一阶 MA(1) 的移动平均过程
- excel - 当两列重复时,如何在 Excel 中使用条件格式突出显示?
- javascript - 将 onPress 重定向传递给子组件 React Native
- telepot - from tensorflow.lite.python.interpreter import Interpreter 防止 Telepot
- python - 如何使用 Python 抓取特定字段,如下面的 HTML 代码所示?
- git - 如何使用搜索关键字和排序获取 git 标签
- python - 'if statement' 删除所有不符合条件的行,我不想要那个