合并 data.frames 导致错误
Merge data.frames cause error
我正在尝试合并两个数据集。两者具有相同的 ID,相同的行具有不同的结果
data<-read.table(file="file.profile", header=T)
data$PHENO<-data$PHENO-1
data$ID<-paste(data$FID,":",data$IID, sep="")
> head(data)
FID IID PHENO CNT CNT2 SCORE ID
1 FID1 10 0 10000 100 0.01 FID1:10
2 FID2 10 0 10000 100 0.01 FID2:10
> cov<-read.table(file="cov.txt", header=T)
> cov$ID<-paste(cov$FID,":",cov$IID, sep="")
> head(cov)
FID IID COV1 COV2 COV3 COV4 COV5 COV6 COV7 PHENO ID
1 FID1 10 0 0 0.101 0.10 0.22 2 179 222 FID1:10
2 FID2 10 0 0 0.102 0.10 0.23 2 176 222 FID2:10
> data<-merge(cov,data,by.x="ID", by.y="ID", all=T)
> head(data)
ID FID.x IID.x COV1 COV2 COV3 COV4 COV5 COV6 COV7 PHENO.x
1 FID1:10 FID1 10 0 0 0.101 0.10 0.22 2 179 222
2 FID2:10 FID2 10 0 0 0.102 0.10 0.23 2 176 222
FID.y IID.y PHENO.y CNT CNT2 SCORE
FID1 10 0 10000 100 0.01
FID2 10 0 10000 100 0.01
为什么我的列中添加了“.x”和“.y”?我怎样才能避免这种情况?
非常感谢
如果您的两个数据框都有同名列,merge()
将在列名后附加 x
或 y
以标识它们来自哪个数据集。
在这里,data
和 cov
中都有一个名为 FID
和 IID
的列;结果,FID.x
和 IID.x
来自 cov
数据框,FID.y
和 IID.y
来自 data
数据框。
您可以通过在两个数据集中使用唯一的列名来避免这种情况。
我正在尝试合并两个数据集。两者具有相同的 ID,相同的行具有不同的结果
data<-read.table(file="file.profile", header=T)
data$PHENO<-data$PHENO-1
data$ID<-paste(data$FID,":",data$IID, sep="")
> head(data)
FID IID PHENO CNT CNT2 SCORE ID
1 FID1 10 0 10000 100 0.01 FID1:10
2 FID2 10 0 10000 100 0.01 FID2:10
> cov<-read.table(file="cov.txt", header=T)
> cov$ID<-paste(cov$FID,":",cov$IID, sep="")
> head(cov)
FID IID COV1 COV2 COV3 COV4 COV5 COV6 COV7 PHENO ID
1 FID1 10 0 0 0.101 0.10 0.22 2 179 222 FID1:10
2 FID2 10 0 0 0.102 0.10 0.23 2 176 222 FID2:10
> data<-merge(cov,data,by.x="ID", by.y="ID", all=T)
> head(data)
ID FID.x IID.x COV1 COV2 COV3 COV4 COV5 COV6 COV7 PHENO.x
1 FID1:10 FID1 10 0 0 0.101 0.10 0.22 2 179 222
2 FID2:10 FID2 10 0 0 0.102 0.10 0.23 2 176 222
FID.y IID.y PHENO.y CNT CNT2 SCORE
FID1 10 0 10000 100 0.01
FID2 10 0 10000 100 0.01
为什么我的列中添加了“.x”和“.y”?我怎样才能避免这种情况?
非常感谢
如果您的两个数据框都有同名列,merge()
将在列名后附加 x
或 y
以标识它们来自哪个数据集。
在这里,data
和 cov
中都有一个名为 FID
和 IID
的列;结果,FID.x
和 IID.x
来自 cov
数据框,FID.y
和 IID.y
来自 data
数据框。
您可以通过在两个数据集中使用唯一的列名来避免这种情况。