【发布时间】:2020-04-21 18:03:40
【问题描述】:
我有一个这样的数据集
df <- data.frame(abc_1 = 1:10, abc_2 = 11:20, abc_3 = 21:30, somevar = 31:40)
head(df)
abc_1 abc_2 abc_3 somevar
1 1 11 21 31
2 2 12 22 32
3 3 13 23 33
4 4 14 24 34
5 5 15 25 35
6 6 16 26 36
我想在 abc_3 之后插入一个新列(在我的例子中是 abc_1、abc_2、abc_3 的行总和)。由于(a)数据集很大,(b)我可能决定在添加列之前操纵数据集(即弄乱列索引),并且因为(c)我想对包含一些不同的变量执行此操作字符串,我希望使用一种不引用列索引而是匹配字符串 abc 的方式来执行此操作。
我在 tibble 包中找到了 add_column,但它只允许像这样按索引添加列
library(tibble)
add_column(df, abc_sum = rowSum(abc_1, abc_2, abc_3), .after = 3)
我想要的是这样的:
abc_1 abc_2 abc_3 abc_sum somevar
1 1 11 21 33 31
2 2 12 22 36 32
3 3 13 23 39 33
4 4 14 24 42 34
5 5 15 25 45 35
6 6 16 26 48 36
我希望通过匹配字符串 abc_3 将 .after = 3 替换为在 abc_3 之后插入它的表达式。
【问题讨论】:
-
如果您可以添加
an example output,这可能会导致获得结果的机会更高(并且更快)。