0

Rが初めてです.data.frameがあります

'data.frame':   2070 obs. of  5 variables:
 $ id   : int  16625062 16711130 16625064 16668358 16625066 16711227 16711290 16668746     16711502 16625494 ...
 $ subj : Factor w/ 3 levels "L","M","S": 1 1 1 1 1 1 1 1 1 1 ...
 $ grade: int  4 6 4 5 4 6 6 5 6 4 ...
 $ score: int  225 225 0 225 225 375 375 125 225 125 ...
 $ level: logi  NA NA NA NA NA NA ...

およびルックアップと呼ばれる名前付き番号のリスト

 Named num [1:12] 12 19 20 26 31 32 49 67 72 73 ...
 - attr(*, "names")= chr [1:12] "0" "50" "100" "125" ...

ルックアップ リストの値を検索し、データ フレームの「スコア」列をルックアップ リストの数値の名前と照合して、データ フレームの「レベル」列を更新する方法を見つけたいと思います。つまり、データ フレーム内のスコア値は、ルックアップ リスト内の数値 (レベル列に入る) をルックアップするために使用されます。

だから...誰かが私の言いたいことを理解していれば...助けてください。

ありがとうロブン

4

1 に答える 1

2

これを行うことができるはずです(データフレームが呼び出されていると仮定しますd):

d$level = as.numeric(lookup[as.character(d$score)])

例えば:

lookup = list(1, 2, 3, 4)
names(lookup) = c("0", "50", "100", "150")

d = data.frame(score=c(50, 150, 0, 0), level=NA)
d$level = as.numeric(lookup[as.character(d$score)])
print(d)
#   score level
# 1    50     2
# 2   150     4
# 3     0     1
# 4     0     1
于 2012-09-14T15:04:49.967 に答える