数字の値に再コードするのには、次のような巨大な1000 x 100000のデータフレームがあります。rのデータを記録する
myd <- data.frame (v1 = sample (c("AA", "AB", "BB", NA), 10, replace = T),
v2 = sample (c("CC", "CG", "GG", NA), 10, replace = T),
v3 = sample (c("AA", "AT", "TT", NA) , 10, replace = T),
v4 = sample (c("AA", "AT", "TT", NA) , 10, replace = T),
v5 = sample (c("CC", "CA", "AA", NA) , 10, replace = T)
)
myd
v1 v2 v3 v4 v5
1 AB CC <NA> <NA> AA
2 AB CG TT TT AA
3 AA GG AT AT CA
4 <NA> <NA> <NA> AT <NA>
5 AA <NA> AA <NA> CA
6 BB <NA> TT TT CC
7 AA GG AA AT CA
8 <NA> GG <NA> AT CA
9 AA <NA> AT <NA> CC
10 AA GG TT AA CC
各変数には、潜在的に4つの一意の値があります。
unique(myd$v1)
[1] AB AA <NA> BB
Levels: AA AB BB
unique(myd$v2)
[1] CC CG GG <NA>
Levels: CC CG GG
このようなユニークな値は、任意の組み合わせが可能ですが、2つのアルファベット( - NAを除く)で構成されています。たとえば、 "A"、 "B"は最初のケースでは "AA"、 "AB"、 "BB"の組み合わせになります。これらの数字コードはそれぞれ1、0、-1となります。同様に、第2のアルファベット「C」の場合、「G」は「CC」、「CG」、「GG」を作成するので、数字コードはそれぞれ1,0、-1となる。あなたのデータは、その下の数字のインデックスを持っている要因、であるという事実を利用することができます
myd
v1 v2 v3 v4 v5
1 0 1 <NA> <NA> 1
2 0 0 -1 -1 1
3 1 -1 0 0 0
4 <NA> <NA> <NA> 0 <NA>
5 1 <NA> 1 < NA> 0
6 -1 <NA> -1 -1 -1
7 1 -1 1 0 0
8 <NA> -1 <NA> 0 0
9 1 <NA> 0 <NA> -1
10 1 -1 -1 1 -1
'data.frame'の戻り値(lapply(myd、function(.x){})) ')または' .data.frame(lapply(myd、function (.x){ - (as.numeric(.x)-2)})) ' – mnel