おそらくこれを試してください:
データを読み込みます:
DF <- read.table(text = "ID1 ID2 ID3 ID4 ID5
SNP1 AA AA AB AA BB
SNP2 AB AA BB AA AA
SNP3 BB BB BB AB BB
SNP4 AA AA BB BB AA
SNP5 AA AA AA AA AA
", header = TRUE, sep = "", stringsAsFactors = FALSE)
> str(DF)
'data.frame': 5 obs. of 5 variables:
$ ID1: chr "AA" "AB" "BB" "AA" ...
$ ID2: chr "AA" "AA" "BB" "AA" ...
$ ID3: chr "AB" "BB" "BB" "BB" ...
$ ID4: chr "AA" "AA" "AB" "BB" ...
$ ID5: chr "BB" "AA" "BB" "AA" ...
ルックアップ テーブルを作成します。
tab <- c("AA" = 0, "AB" = 1 , "BB" = 2)
> tab
AA AB BB
0 1 2
いくつかのサブ割り当てマジック:
> DF[] <- tab[as.matrix(DF)]
> DF
ID1 ID2 ID3 ID4 ID5
SNP1 0 0 1 0 2
SNP2 1 0 2 0 0
SNP3 2 2 2 1 2
SNP4 0 0 2 2 0
SNP5 0 0 0 0 0
> str(DF)
'data.frame': 5 obs. of 5 variables:
$ ID1: num 0 1 2 0 0
$ ID2: num 0 0 2 0 0
$ ID3: num 1 2 2 2 0
$ ID4: num 0 0 1 2 0
$ ID5: num 2 0 2 0 0