如何批量将DataFrame的A1-H12列名替换为指定对应名称?
替换数据集列名的解决方案
步骤1:创建列名映射向量
先将你提供的列名对应关系整理成命名向量,注意合并原本换行的名称(比如D3对应的"L-Pyroglutamic Acid"原本分为两行,需合并为完整名称):
name_mapping <- c( "A1" = "Negative Control", "A2" = "Ammonia", "A3" = "Nitrite", "A4" = "Nitrate", "A5" = "Urea", "A6" = "Biuret", "A7" = "L-Alanine", "A8" = "L-Arginine", "A9" = "L-Asparagine", "A10" = "L-Aspartic Acid", "A11" = "L-Cysteine", "A12" = "L-Glutamic Acid", "B1" = "L-Glutamine", "B2" = "Glycine", "B3" = "L-Histidine", "B4" = "L-Isoleucine", "B5" = "L-Leucine", "B6" = "L-Lysine", "B7" = "L-Methionine", "B8" = "L-Phenylalanine", "B9" = "L-Proline", "B10" = "L-Serine", "B11" = "L-Threonine", "B12" = "L-Tryptophan", "C1" = "L-Tyrosine", "C2" = "L-Valine", "C3" = "D-Alanine", "C4" = "D-Asparagine", "C5" = "D-Aspartic Acid", "C6" = "D-Glutamic Acid", "C7" = "D-Lysine", "C8" = "D-Serine", "C9" = "D-Valine", "C10" = "L-Citrulline", "C11" = "L-Homoserine", "C12" = "L-Ornithine", "D1" = "N-Acetyl-LGlutamic Acid", "D2" = "N-Phthaloyl-LGlutamic Acid", "D3" = "L-Pyroglutamic Acid", "D4" = "Hydroxylamine", "D5" = "Methylamine", "D6" = "N-Amylamine", "D7" = "N-Butylamine", "D8" = "Ethylamine", "D9" = "Ethanolamine", "D10" = "Ethylenediamine", "D11" = "Putrescine", "D12" = "Agmatine", "E1" = "Histamine", "E2" = "ß-Phenylethylamine", "E3" = "Tyramine", "E4" = "Acetamide", "E5" = "Formamide", "E6" = "Glucuronamide", "E7" = "D,L-Lactamide", "E8" = "D-Glucosamine", "E9" = "D-Galactosamine", "E10" = "D-Mannosamine", "E11" = "N-Acetyl-DGlucosamine", "E12" = "N-Acetyl-DGalactosamine", "F1" = "N-Acetyl-DMannosamine", "F2" = "Adenine", "F3" = "Adenosine", "F4" = "Cytidine", "F5" = "Cytosine", "F6" = "Guanine", "F7" = "Guanosine", "F8" = "Thymine", "F9" = "Thymidine", "F10" = "Uracil", "F11" = "Uridine", "F12" = "Inosine", "G1" = "Xanthine", "G2" = "Xanthosine", "G3" = "Uric Acid", "G4" = "Alloxan", "G5" = "Allantoin", "G6" = "Parabanic Acid", "G7" = "D,L-α-Amino-NButyric Acid", "G8" = "γ-Amino-NButyric Acid", "G9" = "ε-Amino-NCaproic Acid", "G10" = "D,L-α-AminoCaprylic Acid", "G11" = "δ-Amino-NValeric Acid", "G12" = "α-Amino-NValeric Acid", "H1" = "Ala-Asp", "H2" = "Ala-Gln", "H3" = "Ala-Glu", "H4" = "Ala-Gly", "H5" = "Ala-His", "H6" = "Ala-Leu", "H7" = "Ala-Thr", "H8" = "Gly-Asn", "H9" = "Gly-Gln", "H10" = "Gly-Glu", "H11" = "Gly-Met", "H12" = "Met-Ala" )
步骤2:替换列名
方法一:基础R实现
直接修改数据集的列名属性,仅替换匹配映射的列名,保留time和T..OD2.600不变:
# 获取当前列名 current_cols <- colnames(od) # 替换匹配的列名 colnames(od) <- ifelse(current_cols %in% names(name_mapping), name_mapping[current_cols], current_cols)
方法二:tidyverse(dplyr)实现
若习惯使用tidyverse工具,可通过rename_with批量替换:
library(dplyr) od <- od %>% rename_with(~ name_mapping[.x], .cols = all_of(names(name_mapping)))
验证结果
执行替换后,可通过head(od, 1)查看列名是否已更新为目标名称。
内容的提问来源于stack exchange,提问作者Salt_Industry
相关产品推荐
相关产品推荐

