我想根据df2中的名称为df1的某些列名追加后缀或前缀。 我的df1看起来像这样,
AE02 AE03 AE04 AE05 AE06 AE07 AE08 AE09 AE10 AE11 AE12
11.9619362364 18.5701402709 42.2010838789 28.0025053738 19.5589170223 18.1459582989 16.5292369479 32.4885640738 34.0342144643 31.6971000153 44.932255488
2.9904840591 3.9793157723 0 0 1.7780833657 1.7281865047 13.7743641233 4.3318085432 0 17.067669239 0
0 0 0 0 2.6671250485 0 4.5914547078 0 0 0 2.1396312137
和df2看起来像,
V1
AE06
AE08
AE09
AE12
我可以用新名称替换那些列名,如下所示,
colnames(df1)[which(colnames(df1) %in% df2$V1 )] <- "DMR"
但我正在寻找一个解决方案,我可以将其作为前缀添加到列名而不是替换它, 例如,我的列名应该是这样的,
AE02 AE03 AE04 AE05 DMR_AE06 AE07 DMR_AE08 DMR_AE09 AE10 AE11 DMR_AE12
任何建议和帮助都是很好的
答案 0 :(得分:4)
答案 1 :(得分:1)
使用Python中的列表理解:
df.columns = ['DMR_{}'.format(x) if x in df2.V1.values else x for x in df.columns]