R - ตัวแปร

ตัวแปรช่วยให้เรามีพื้นที่จัดเก็บที่มีชื่อซึ่งโปรแกรมของเราสามารถจัดการ ตัวแปรใน R สามารถจัดเก็บเวกเตอร์อะตอมกลุ่มของเวกเตอร์อะตอมหรือการรวมกันของ Robjects จำนวนมาก ชื่อตัวแปรที่ถูกต้องประกอบด้วยตัวอักษรตัวเลขและจุดหรืออักขระขีดเส้นใต้ ชื่อตัวแปรเริ่มต้นด้วยตัวอักษรหรือจุดที่ไม่ได้ตามด้วยตัวเลข

ชื่อตัวแปร ความถูกต้อง เหตุผล
var_name2. ถูกต้อง มีตัวอักษรตัวเลขจุดและขีดล่าง
var_name% ไม่ถูกต้อง มีอักขระ '%' อนุญาตเฉพาะจุด (.) และขีดล่างเท่านั้น
2var_name ไม่ถูกต้อง เริ่มต้นด้วยตัวเลข

.var_name,

var.name

ถูกต้อง สามารถเริ่มต้นด้วยจุด (.) แต่ไม่ควรตามด้วยตัวเลข
.2var_name ไม่ถูกต้อง จุดเริ่มต้นตามด้วยตัวเลขทำให้ไม่ถูกต้อง
_var_name ไม่ถูกต้อง เริ่มต้นด้วย _ ซึ่งไม่ถูกต้อง

การกำหนดตัวแปร

ตัวแปรสามารถกำหนดค่าได้โดยใช้ตัวดำเนินการซ้ายขวาและเท่ากับตัวดำเนินการ สามารถพิมพ์ค่าของตัวแปรได้โดยใช้print() หรือ cat()ฟังก์ชัน cat() ฟังก์ชั่นรวมหลายรายการเป็นผลงานพิมพ์ต่อเนื่อง

# 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 ,"\n")
cat ("var.2 is ", var.2 ,"\n")
cat ("var.3 is ", var.3 ,"\n")

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

[1] 0 1 2 3
var.1 is  0 1 2 3 
var.2 is  learn R 
var.3 is  1 1

Note- เวกเตอร์ c (TRUE, 1) มีคลาสตรรกะและตัวเลขผสมกัน ดังนั้นคลาสตรรกะจึงถูกบังคับให้คลาสตัวเลขทำให้ TRUE เป็น 1

ชนิดข้อมูลของตัวแปร

ใน R ตัวแปรจะไม่ได้รับการประกาศประเภทข้อมูลใด ๆ แต่จะได้รับชนิดข้อมูลของวัตถุ R ที่กำหนดให้ ดังนั้น R จึงเรียกว่าภาษาพิมพ์แบบไดนามิกซึ่งหมายความว่าเราสามารถเปลี่ยนชนิดข้อมูลของตัวแปรเดียวกันซ้ำแล้วซ้ำอีกเมื่อใช้ในโปรแกรม

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

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

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

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

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

การค้นหาตัวแปร

หากต้องการทราบตัวแปรทั้งหมดที่มีอยู่ในพื้นที่ทำงานเราใช้ ls()ฟังก์ชัน นอกจากนี้ฟังก์ชัน ls () ยังสามารถใช้รูปแบบเพื่อจับคู่ชื่อตัวแปร

print(ls())

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

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

Note - เป็นผลลัพธ์ตัวอย่างขึ้นอยู่กับตัวแปรที่ประกาศในสภาพแวดล้อมของคุณ

ฟังก์ชัน ls () สามารถใช้รูปแบบเพื่อจับคู่ชื่อตัวแปร

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

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

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

ตัวแปรที่ขึ้นต้นด้วย dot(.) ถูกซ่อนไว้สามารถแสดงรายการโดยใช้อาร์กิวเมนต์ "all.names = TRUE" กับฟังก์ชัน ls ()

print(ls(all.name = TRUE))

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

[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()ฟังก์ชัน ด้านล่างเราจะลบตัวแปร var.3 ในการพิมพ์ค่าของข้อผิดพลาดตัวแปรจะถูกโยนทิ้ง

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

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

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

ตัวแปรทั้งหมดสามารถลบได้โดยใช้ rm() และ ls() ทำงานร่วมกัน

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

เมื่อเรารันโค้ดด้านบนจะให้ผลลัพธ์ดังนี้ -

character(0)