如果R中的语句,带有数据框

use*_*427 2 if-statement r dataframe

假设我有一个数据框,其中有几行看起来像:

        User    Lab    Score
         A       1       5
         A       2       6
         A       4       7
         B       1       3
         B       3       4
         C       2       5
Run Code Online (Sandbox Code Playgroud)

然后,对于实验1,我想将得分除以5,对于实验2,我想将得分除以8,对于实验3,我想将得分除以7,对于实验4,我想要将得分除以得分为9.我将如何做到这一点?

Hon*_*Ooi 9

对于像这样的数据转换任务,使用ifelse,这是一种基于条件从不同结果中进行选择的矢量化形式.

df$Score <- with(df, ifelse(Lab == 1, Score/5,
                     ifelse(Lab == 2, Score/8,
                     ifelse(Lab == 3, Score/7, Score/9))))
Run Code Online (Sandbox Code Playgroud)

(这假设您只有4个实验室.)