我有一个数据框,左上角看起来像这样:
Row.names Chrom Position GT_1 GT_10 GT_100 GT_101 GT_103
1 SST4.03CH00_1006820 0 1006820 <NA> TTTA TTAA TTTT TTTT
2 SST4.03CH00_1006822 0 1006822 <NA> CCCC <NA> CCCC CCCC
3 SST4.03CH00_1006850 0 1006850 GGGA GGGG GGGG <NA> GGGG
4 SST4.03CH00_1117001 0 1117001 GGAA GGGA AAAA GGGG GGGA
5 SST4.03CH00_11378893 0 11378893 CCCC <NA> CCCA CCCC <NA>
我需要根据此列表更改以“GT_”开头的列标题,并使用替代名称:
GT_1 Anna
GT_10 Beatrix
GT_100 Silvia
GT_101 Samoa
GT_103 Samurai
现在,我已经设法通过转置和合并并转置回来做到这一点。然而,这似乎是一种相当笨拙的方式。我很感激为这个经常性的任务提供更优雅/安全的解决方案。
答案 0 :(得分:1)
使用以下概念重命名列:
df <- data.frame (a = rnorm(10), b = rnorm(10), c = rnorm(10), d = rnorm(10))
old <- c('a','b','c')
new <- c('z','x', 'y')
rename <- na.omit(match(names(df),old))
names(df)[rename] <- new[rename]