R語(yǔ)言 變量

2022-06-16 14:40 更新

變量為我們提供了我們的程序可以操作的命名存儲(chǔ)。 R語(yǔ)言中的變量可以存儲(chǔ)原子向量,原子向量組或許多Robject的組合。 有效的變量名稱由字母,數(shù)字和點(diǎn)或下劃線字符組成。 變量名以字母或不以數(shù)字后跟的點(diǎn)開(kāi)頭。

變量名合法性原因
var_name2.有效有字母,數(shù)字,點(diǎn)和下劃線
VAR_NAME%無(wú)效有字符'%'。只有點(diǎn)(.)和下劃線允許的。
2var_name無(wú)效以數(shù)字開(kāi)頭
.var_name,
var.name
有效可以用一個(gè)點(diǎn)(.),但啟動(dòng)點(diǎn)(.),不應(yīng)該后跟一個(gè)數(shù)字。
.2var_name無(wú)效起始點(diǎn)后面是數(shù)字使其無(wú)效。
_var_name無(wú)效開(kāi)頭_這是無(wú)效的

變量賦值

可以使用向左,向右和等于運(yùn)算符來(lái)為變量分配值。 可以使用print()或cat()函數(shù)打印變量的值。 cat()函數(shù)將多個(gè)項(xiàng)目組合成連續(xù)打印輸出。

# Assignment using equal operator.
var.1 = c(0,1,2,3)           

# Assignment using leftward operator.
var.2 <- c("learn","R")   

# Assignment using rightward operator.   
c(TRUE,1) -> var.3           

print(var.1)
cat ("var.1 is ", var.1 ,"
")
cat ("var.2 is ", var.2 ,"
")
cat ("var.3 is ", var.3 ,"
")

當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -

[1] 0 1 2 3
var.1 is  0 1 2 3 
var.2 is  learn R 
var.3 is  1 1 
- 向量c(TRUE,1)具有邏輯和數(shù)值類的混合。 因此,邏輯類強(qiáng)制轉(zhuǎn)換為數(shù)字類,使TRUE為1。

變量的數(shù)據(jù)類型

在R語(yǔ)言中,變量本身沒(méi)有聲明任何數(shù)據(jù)類型,而是獲取分配給它的R - 對(duì)象的數(shù)據(jù)類型。 所以R稱為動(dòng)態(tài)類型語(yǔ)言,這意味著我們可以在程序中使用同一個(gè)變量時(shí),一次又一次地更改變量的數(shù)據(jù)類型。

var_x <- "Hello"
cat("The class of var_x is ",class(var_x),"
")

var_x <- 34.5
cat("  Now the class of var_x is ",class(var_x),"
")

var_x <- 27L
cat("   Next the class of var_x becomes ",class(var_x),"
")

當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -

The class of var_x is  character 
   Now the class of var_x is  numeric 
      Next the class of var_x becomes  integer

查找變量

要知道工作空間中當(dāng)前可用的所有變量,我們使用ls()函數(shù)。 ls()函數(shù)也可以使用模式來(lái)匹配變量名。

print(ls())

當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -

[1] "my var"     "my_new_var" "my_var"     "var.1"      
[5] "var.2"      "var.3"      "var.name"   "var_name2."
[9] "var_x"      "varname" 
注意 - 它是一個(gè)示例輸出,取決于在您的環(huán)境中聲明的變量。

ls()函數(shù)可以使用模式來(lái)匹配變量名。

# List the variables starting with the pattern "var".
print(ls(pattern = "var"))   

當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -

[1] "my var"     "my_new_var" "my_var"     "var.1"      
[5] "var.2"      "var.3"      "var.name"   "var_name2."
[9] "var_x"      "varname"    

以點(diǎn)(.)開(kāi)頭的變量被隱藏,它們可以使用ls()函數(shù)的“all.names = TRUE”參數(shù)列出。

print(ls(all.name = TRUE))

當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -

[1] ".cars"        ".Random.seed" ".var_name"    ".varname"     ".varname2"   
[6] "my var"       "my_new_var"   "my_var"       "var.1"        "var.2"        
[11]"var.3"        "var.name"     "var_name2."   "var_x"  

刪除變量

可以使用rm()函數(shù)刪除變量。 下面我們刪除變量var.3。 打印時(shí),拋出變量錯(cuò)誤的值。

rm(var.3)
print(var.3)

當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -

[1] "var.3"
Error in print(var.3) : object 'var.3' not found

所有的變量可以通過(guò)使用rm()和ls()函數(shù)一起刪除。

rm(list = ls())
print(ls())

當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -

character(0)

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)