我有以下數據集嵌套的if else中的R - SAT/ACT考試
df <- data.frame(student=c(1,2,3,4,5,6,7,8,9), sat=c(365,0,545,630,385,410,0,655,0), act=c(28,20,0,0,16,17,35,29,21))
student sat act
1 365 28
2 0 20
3 545 0
4 630 0
5 385 16
6 410 17
7 0 35
8 655 29
9 0 21
,我想創建一個新的領域具備以下條件
如果有SAT成績> 0使用SAT分數 如果SAT = 0,則使用規則here將ACT轉換爲SAT分數。 。(當有在SAT分數的範圍內,我只是用中位數
ACT SAT
8 200
9 210
10 220
11 225
12 250
13 285
14 325
15 360
16 385
17 410
18 440
19 465
20 485
21 505
22 525
23 545
24 560
25 575
26 595
27 615
28 635
29 655
30 675
31 700
32 725
33 750
34 775
35 790
36 800
這是一個ifelse語句赫克我已經試過這樣:
df$newgrade=-ifelse(ACT=8,200, ifelse (ACT=9,210, ifelse(ACT=10,220, ifelse (ACT=11,225, ACT=12,250, ifelse(ACT=13,285, ifelse (ACT=14,325, ACT=15,D, ifelse(ACT=16,C, ifelse (ACT=17,B, ACT=18,D, ifelse(ACT=19,C, ifelse (ACT=20,B, ACT=21,D, ifelse(ACT=22,C, ifelse (ACT=23,B, ACT=24,D, ifelse(ACT=25,C, ifelse (ACT=26,B, ACT=27,D, ifelse(ACT=28,C, ifelse (ACT=29,B, ACT=30,D, ifelse(ACT=31,C, ifelse (ACT=32,B, ACT=33,D, ifelse(ACT=34,C, ifelse (ACT=35,B, ACT=36,D))))))))))))))))))))
我試圖按照在這個頁面的底部,但例如,它沒有工作。
有沒有人對如何最好地實現這個新領域的任何想法?
謝謝您可能會帶來任何幫助。
什麼是第二個數據框?,轉換表?假設第二個表是轉換data.frame,你可以試試:'df $ newgrade <-ifelse(df $ sat == 0,conversion $ SAT [match(df $ act,conversion $ ACT)] ,df $ sat)' –
沒有一個,但我可以輕鬆將SAT/ACT轉換錶轉換爲一個。讓我們稱之爲轉換?會有幫助嗎?我會在哪裏放置它? – Walker
或者是您在此處列出的第二張轉換表?對不起,我不得不重讀 – Walker