0

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

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”文件更改我的“主”文件的所有标题,这样如果与 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

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

4

2 回答 2

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
于 2012-11-22T23:10:19.940 回答
0

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

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

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

于 2012-11-22T23:10:35.610 回答