在R中动态调用变量

时间:2017-04-03 18:53:10

标签: r

我本质上是在尝试相当于查找。这是我到目前为止所做的:

Hotel   Rate1   Rate2   Rate3   Rate4   Season
Hotel1  225     205     250     155     Rate2
Hotel2  175     165     180     175     Rate1
Hotel3  160     210     210     225     Rate3
Hotel4  230     210     200     150     Rate2
Hotel5  180     160     175     165     Rate4

正如你所看到的,我已经让它吐出应该变量的名称,现在我正在寻找一种方法让它吐出与变量名对应的值,比如这样:

Hotel   Rate1   Rate2   Rate3   Rate4   Season  Exp.Rate
Hotel1  225     205     250     155     Rate2     205
Hotel2  175     165     180     175     Rate1     175
Hotel3  160     210     210     225     Rate3     210
Hotel4  230     210     200     150     Rate2     210
Hotel5  180     160     175     165     Rate4     165

我已经完成了一些Google搜索,并且我尝试过使用eval(as.name),但我找不到任何与我正在寻找的完全相同的东西。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我们可以使用row/column索引方法来提取值。使用行序列创建一个matchcbind的列索引,并获取与索引对应的数据集子集('df1 [2:5]`)的值,并将其分配给' Exp.Rate'

df1$Exp.Rate <- df1[2:5][cbind(1:nrow(df1), match(df1$Season, names(df1)[2:5]))]
df1$Exp.Rate
#[1] 205 175 210 210 165