如何使用R更改文件的标题?

时间:2012-11-22 22:42:20

标签: r lookup names

假设我有这个文件(主要)

Name samp1 samp2 samp3 samp4
pg1 0.43 0.32 0.21 0.54
pg2 0.43 0.22 1.00 0.44
pg3 0.11 0.99 0.78 0.54
pg4 0.65 0.32 0.12 0.23

我在下面也有这个头文件(MAPPERS)

SampName ID
samp1 TYC
samp4 GDD
samp6 DER
samp2 JKK
samp3 WER
samp9 AXC

我希望使用“MAPPERS”文件更改“main”文件的所有标题,这样如果与sampleName匹配,则应该用样本ID替换它。所以我希望有以下内容:

Name TYC JKK WER GDD
pg1 0.43 0.32 0.21 0.54
pg2 0.43 0.22 1.00 0.44
pg3 0.11 0.99 0.78 0.54
pg4 0.65 0.32 0.12 0.23

我有一个大文件,所以有人可以帮助我如何获得上述内容吗?

2 个答案:

答案 0 :(得分:1)

?match是您正在追逐的工具:

main <- read.table(textConnection("Name samp1 samp2 samp3 samp4
pg1 0.43 0.32 0.21 0.54
pg2 0.43 0.22 1.00 0.44
pg3 0.11 0.99 0.78 0.54
pg4 0.65 0.32 0.12 0.23"),header=TRUE,stringsAsFactors=FALSE)

mapper <- read.table(textConnection("SampName ID
samp1 TYC
samp4 GDD
samp6 DER
samp2 JKK
samp3 WER
samp9 AXC"),header=TRUE,stringsAsFactors=FALSE)


names(main)[2:5] <- mapper$ID[match(names(main)[2:5],mapper$SampName)]
main

  Name  TYC  JKK  WER  GDD
1  pg1 0.43 0.32 0.21 0.54
2  pg2 0.43 0.22 1.00 0.44
3  pg3 0.11 0.99 0.78 0.54
4  pg4 0.65 0.32 0.12 0.23

答案 1 :(得分:0)

这是一个未经测试的例子。当你发布数据时,我会测试它。

curnames <- data.frame(SampName=colnames(main))
colnames(main) <- merge(curnames,MAPPERS,all.x=TRUE)$ID

如果您不确定每个SampName是否与MAPPERS中的ID匹配,则需要更多代码。