R语言学习笔记——批量生成、调用含参数变量
程序员文章站
2022-03-11 16:41:31
...
批量生成、调用含参数变量
使用get()、assign()和paste()函数实现
函数分析
get()
get(x, pos = -1, envir = as.environment(pos), mode = “any”, inherits = TRUE)
返回对应变量的值。
当输入的变量是不存在时,会报错。需要注意的是变量名称需要使用引号。
> get(a)
Error in get(a) : object 'a' not found
> a=1
> get(a)
Error in get(a) : invalid first argument
> get('a')
[1] 1
assign()
assign(x, value, pos = -1, envir = as.environment(pos), inherits = FALSE, immediate = TRUE)
将value赋值给x
和get()相同,需要对操作的变量使用引号。assign()函数赋值的对象不存在时,将自动创建该对象,当value指向一个不存在的变量时,同样会报错。
> a=1
> assign(x,a)
Error in assign(x, a) : object 'x' not found
> assign('x',a)
> x
[1] 1
> assign('x',b)
Error in assign("x", b) : object 'b' not found
paste()
paste (…, sep = " ", collapse = NULL)
paste0(…, collapse = NULL)
将输入的内容连接成一个新的对象,默认的连接符是一个空格。
> paste('a','b')
[1] "a b"
> paste('a','b','ccc')
[1] "a b ccc"
> paste('a','b',sep = "")
[1] "ab"
> paste('a','b',sep = "@")
[1] "[email protected]"
生成
##生成10个变量,名字分别为data1、data2......data10,并赋值1
##注意:for循环的循环体超过一句时需要用{}括起来
for (i in 1:10)
assign(paste("data",i,sep=""),1)
调用
##循环调用data1-data10,其中“......”为调用后需要实现的内容
for (j in 1:10){
get(paste("data",j,sep=""))
......
}