如何按指定模式批量重命名数据表过长的列名
批量重命名数据表列名方案
从给出的示例可总结统一的列名结构规律:所有待处理列名均为
染色体位置_目标基因名_Ensembl ID及版本号的下划线拼接格式,因此无需为每列单独配置规则,可统一提取下划线分割后的第二个字段作为新列名。
R 语言实现(适用tidyverse生态)
如果数据存储为R数据框,可配合dplyr和stringr包实现批量修改:
library(dplyr) library(stringr) # 替换df为你的实际数据框名 df <- df %>% rename_with( .fn = ~ str_split_i(.x, pattern = "_", i = 2), .cols = everything() )
*如果仅需要修改部分列,将.cols = everything()替换为对应列的筛选规则即可。
Python 实现(适用pandas数据框)
如果用pandas处理数据,直接修改列名属性即可:
import pandas as pd # 替换df为你的实际数据框名 df.columns = df.columns.str.split("_").str[1]
Shell 命令实现(直接修改文本格式表文件)
如果需要直接修改csv/tsv格式文件的表头,可使用awk命令处理:
- 处理tsv格式文件
awk 'BEGIN{FS=OFS="\t"} NR==1{for(i=1;i<=NF;i++){split($i,a,"_");$i=a[2]}}1' 输入文件.tsv > 输出文件.tsv
- 处理csv格式文件
awk 'BEGIN{FS=OFS=","} NR==1{for(i=1;i<=NF;i++){split($i,a,"_");$i=a[2]}}1' 输入文件.csv > 输出文件.csv
内容的提问来源于stack exchange,提问作者Alisa Adler
相关产品推荐
相关产品推荐

