将带后缀的新列添加到数据框中

问题描述 投票:0回答:1

我想从另一列中减去一列,并使用第一列中的相应后缀创建一个新列。我有大约50列我可以按以下方式“手动”进行操作...

df $ new1

df $ new2

创建最适合我的循环的最简单方法是什么?

r loops for-loop multiple-columns forward
1个回答
0
投票

我们可以使用grep标识其中具有"a""b"的列,并直接将其相减。

a_cols <- grep("col_a", names(df))
b_cols <- grep("col_b", names(df))
df[paste0("new", seq_along(a_cols))] <- df[a_cols] - df[b_cols]
df

#  col_a1 col_a2 col_b1 col_b2 new1 new2
#1     10     15      1      5    9   10
#2      9     14      2      6    7    8
#3      8     13      3      7    5    6
#4      7     12      4      8    3    4
#5      6     11      5      9    1    2
#6      5     10      6     10   -1    0

数据

已对此数据进行测试

df <- data.frame(col_a1 = 10:5, col_a2 = 15:10, col_b1 = 1:6, col_b2 = 5:10)
© www.soinside.com 2019 - 2024. All rights reserved.