我有一个变量(比如VarX
),数据集中的值为1:4,大约有2000行。数据集中还有其他变量。我想创建一个新变量(NewVar
),这样如果值VarX
为1
,则NewVar
的值为0.32
(来自的值) myMat[1, 1]
),如果值VarX
为2
,则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中执行任务吗?谢谢!