R語言學習筆記——批量生成、呼叫含引數變數
阿新 • • 發佈:2018-12-14
批量生成、呼叫含引數變數
使用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=""))
......
}