0
如果第一列在另一個data.frame中匹配,我想替換data.frame的第二列中的字符。因此,文件是這樣的:如果第一列中的元素與另一個data.frame中的另一個元素相匹配,如何替換數據框第二列中的元素?
文件1:
Genotype Group Type
1 08ZB02005DH01 08ZB02005DH01 Line
2 08ZB07005DH04 08ZB07005DH04 Line
3 08ZB08B06DH02 08ZB08B06DH02 Line
4 08ZB13005DH04 08ZB13005DH04 Line
5 08ZB18B24DH01 08ZB18B24DH01 Line
6 JRP4RA6121-002 JRP4RA6121-002 Line
文件2:
Genotype POL RE ZE
1 08ZB08B06DH02 102.6110 94.94690 97.33455
2 08ZB18B24DH01 102.3411 94.18070 96.29505
3 08ZB02005DH01 101.0357 95.59205 96.62890
4 08ZB13005DH04 101.9972 96.57825 98.62155
5 08ZB07005DH04 103.5134 92.92665 96.10605
這是我使用的代碼:
Group_code1 <- 'TS'
Group_code2 <- 'PS'
for (i in 1:dim(file1)[1]) {
if ((match(file1[i,1],file2[,1], nomatch=0)) >= 1) {test[i,2]<-Group_code2} else { test[i,2]<-Group_code2}
}
我所期望的爲輸出:
Genotype Group Type
1 08ZB02005DH01 TS Line
2 08ZB07005DH04 TS Line
3 08ZB08B06DH02 TS Line
4 08ZB13005DH04 TS Line
5 08ZB18B24DH01 TS Line
6 JRP4RA6121-002 PS Line
,但我得到這個錯誤:
Warning messages:
1: In `[<-.factor`(`*tmp*`, iseq, value = "PS") :
invalid factor level, NA generated
我想保留這部分代碼(或至少類似的東西):
Group_code1 <- 'TS'
Group_code2 <- 'PS'
在此先感謝
隨着錯誤消息的選項表示,你必須因子變量。將其改爲人物。 'yourdata $ yourcolumn < - as.character(yourdata $ yourcolumn)' – akrun
當我運行命令時,我得到所有行「PS」。錯誤消失了 – mahmood