Nested IF Else in R - SAT/ACT test
You can indeed use the conversion table:

conversion &lt;- read.table(text = "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", header = TRUE)


With the help of this table and mathematical/logical operators, you can create the values:

transform(df, newgrade = (sat | act) * 
            (conversion$SAT[match(df$act, conversion$ACT)] ^
               as.logical(act) * !sat) + sat)


The result:

   student sat act newgrade
1        1 365  28      365
2        2   0  20      485
3        3 545   0      545
4        4 630   0      630
5        5 385  16      385
6        6 410  17      410
7        7   0  35      790
8        8 655  29      655
9        9   0  21      505


The value in newgrade will also be 0 if both sat and act are 0.