R中ifelse()的替代方法是什么?

时间:2016-08-03 19:41:27

标签: r function if-statement

我有一个变量(比如VarX),数据集中的值为1:4,大约有2000行。数据集中还有其他变量。我想创建一个新变量(NewVar),这样如果值VarX1,则NewVar的值为0.32(来自的值) myMat[1, 1]),如果值VarX2,则NewVar的值为0.05(来自myMat[2, 1]的值),依此类推。 ..

myMat
      VarA VarB VarC
[1,] 0.32  0.34 0.27
[2,] 0.05  0.02 0.11
[3,] 0.11  0.11 0.17
[4,] 0.52  0.52 0.45

我尝试了以下内容并且工作正常:

df$NewVar <-    ifelse(df$VarX == 1, 0.32, 
                       ifelse(df$VarX == 2, 0.05,
                              ifelse(df$VarX == 3, 0.11,
                                     ifelse(df$VarX == 4, 0.52, 0))))

但是,我有另一个变量(比如VarY),它有182个值,另一个矩阵有182个不同的值。因此,使用ifelse()会非常繁琐。还有另一种方法在R中执行任务吗?谢谢!

0 个答案:

没有答案