我想知道如何将数据框的列名替换为原始列名中的唯一字符串?

> 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/

10-12 20:33