目的:
在进行循环的时候,经常需要把环境中的变量通过字符的形式提取出来并赋值给新的变量,涉及到环境变量和字符的转换问题。在R语言中,,可以通过assign()和get()这两个函数操作。
get:返回和字符串同名的变量的值
assign:将字符串变量的字符进行复制
get和assign是互为镜像的两个函数。
实例:
- 1、assign的用法
假设有100个文件,分别为1.txt,2.txt到100.txt,现在吧这个100个文件分别读取,存到不同的变量名中:
n = 100
vari = "data"
for(i in n){
file_name = sprintf("%s.txt", i)
x_name = sprintf("%data_s", i)
assign(x_name, read.table( file_name) )
}
这样在环境中,就生成了100个变量,分别为 data_1到data_100。因此assign可以进行批量的赋值,并且有规律的控制变量名
- 2、get的用法
get是assign的逆过程,我们可以通过ls()获得环境中的变量的名称,然后通过get可以获得对应的环境变量中的值。
比如我们需要把上面的data_1到data_100的变量存成rda
#查看以data开通的变量
vars = ls(pattern = "^data")
for(i in vars){
save( get(i), file = sprintf(".rda", i) )
}
这样我们就把data开头的数据通循环的方式,写入到了rda的数据中。