在R语言中,经常会遇到变量名称和字符串相互转换的问题。比如说,进行1000次循环运算,并将运算结果存储在1000个变量中,如x_1, x_2, ... , x_1000。这时候可以使用assign()函数,示例如下:
> a
错误: 找不到对象'a'
> assign('a', 1)
> a
[1] 1
上面的例子将字符'a'转变为变量a,并将其赋值为1 。
相反,如果我们想遍历一个变量序列,并对其中的每一个变量都进行操作,该怎么办呢?我们可以使用get()函数。示例如下:
> a <- 1
> b <- 2
> c <- 3
> sequence <- c('a', 'b', 'c')
> for (var in sequence){print(var + 10)}
错误于var + 10 : 二进列运算符中有非数值参数
> for (var in sequence){print(get(var) + 10)}
[1] 11
[1] 12
[1] 13
我们可以发现,get函数将字符var转变为变量,并根据变量的值进行后续操作。