欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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=""))
    ......
    }
相关标签: r