我想知道如何将数据框的列名替换为原始列名中的唯一字符串?
> colnames(df.iso)
[1] "../trimmed/100G.tally.fasta" "../trimmed/100R.tally.fasta" "../trimmed/106G.tally.fasta"
[4] "../trimmed/106R.tally.fasta" "../trimmed/122G.tally.fasta" "../trimmed/122R.tally.fasta"
[7] "../trimmed/124G.tally.fasta" "../trimmed/124R.tally.fasta" "../trimmed/126G.tally.fasta"
[10] "../trimmed/126R.tally.fasta" "../trimmed/134G.tally.fasta" "../trimmed/134R.tally.fasta"
最佳答案
我们可以使用 sub
和 ?basename
从列名中提取子字符串。将输出分配回列名称以反射(reflect)更改。
colnames(df.iso) <- sub("\\..*", '', basename(colnames(df.iso)))
如果我们不想使用
basename
,也可以单独使用 sub
。colnames(df.iso) <- sub("([^/]+/){2}([^.]+).*",
"\\2", colnames(df.iso))
关于将列名替换为列的子字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36251386/