การเข้าถึงตัวแปรในขอบเขตต่างๆ ในภาษา R
— R — 1 min read
การเข้าถึงตัวแปรในขอบเขตที่แตกต่างกันในภาษา R
ในภาษา R, เราสามารถใช้ตัวแปรที่ถูกประกาศในขอบเขตต่างๆ เพื่อนำค่าไปใช้งานหรือประมวลผลในส่วนอื่นของโปรแกรมได้
นี่คือตัวอย่างโค้ดที่แสดงการเข้าถึงตัวแปรในขอบเขตที่แตกต่างกันในภาษา R:
my_function <- function() { local_variable <- 5 # ประกาศตัวแปรในขอบเขตภายในฟังก์ชัน print(local_variable) # ผลลัพธ์: 5 nested_function <- function() { nested_variable <- 10 # ประกาศตัวแปรในขอบเขตภายในฟังก์ชันซ้อน print(nested_variable) # ผลลัพธ์: 10 print(local_variable) # ผลลัพธ์: 5 } nested_function()}
my_function()
print(local_variable) # ผลลัพธ์: Error: object 'local\_variable' not foundprint(nested_variable) # ผลลัพธ์: Error: object 'nested\_variable' not found`
ในตัวอย่างข้างต้น เราสร้างฟังก์ชัน my_function
ที่ประกาศตัวแปร local_variable
ภายในขอบเขตภายในฟังก์ชัน จากนั้น เราสร้างฟังก์ชัน nested_function
ภายใน my_function
และประกาศตัวแปร nested_variable
ในขอบเขตภายใน nested_function
เมื่อเราเรียกใช้ฟังก์ชัน my_function()
โปรแกรมจะแสดงผลลัพธ์ของ local_variable
ซึ่งเป็น 5
และเรียกใช้ nested_function()
ภายใน my_function
ซึ่งจะแสดงผลลัพธ์ของ nested_variable
ซึ่งเป็น 10
และ local_variable
ซึ่งเป็น 5
อย่างไรก็ตาม เมื่อเราพยายามเข้าถึงตัวแปร local_variable
หรือ nested_variable
นอกเหนือจากขอบเขตที่มันถูกประกาศ เช่น การพิมพ์ print(local_variable)
หรือ print(nested_variable)
จะเกิดข้อผิดพลาดที่บอกว่า "Error: object 'local_variable' not found" หรือ "Error: object 'nested_variable' not found" เนื่องจากตัวแปรเหล่านี้ไม่ได้ถูกประกาศในขอบเขตที่เหลืออยู่ในโปรแกรม
การเข้าถึงตัวแปรในขอบเขตที่แตกต่างกันในภาษา R ช่วยให้เราสามารถใช้งานตัวแปรในที่ต่างๆ ของโปรแกรมได้อย่างยืดหยุ่น และช่วยให้เราแยกแยะและบริหารจัดการขอบเขตของตัวแปรในการเขียนโค้ดอย่างเหมาะสม
เราสามารถใช้คีย์เวิร์ด <<-
ในภา ษา R เพื่อเข้าถึงและแก้ไขค่าของตัวแปรในขอบเขตที่แตกต่างกัน อย่างไรก็ตาม การใช้ <<-
จะต้องใช้ในกรณีที่จำเป็นเท่านั้น เนื่องจากมันอาจทำให้โค้ดยากในการอ่านและแก้ไขในอนาคต
นี่คือตัวอย่างโค้ดที่แสดงการใช้งานคีย์เวิร์ด <<-
เพื่อเข้าถึงและแก้ไขตัวแปรในขอบเขตที่แตกต่างกันในภาษา R:
my_function <- function() { local_variable <- 5 nested_function <- function() { nested_variable <<- 10 # ใช้คีย์เวิร์ด <<- เพื ่อเข้าถึงตัวแปรนอกขอบเขตของฟังก์ชัน local_variable <<- 7 # ใช้คีย์เวิร์ด <<- เพื่อแก้ไขค่าของตัวแปรนอกขอบเขตของฟังก์ชัน } nested_function() print(nested_variable) # ผลลัพธ์: 10 print(local_variable) # ผลลัพธ์: 7}
my_function()
print(nested_variable) # ผลลัพธ์: Error: object 'nested\_variable' not foundprint(local_variable) # ผลลัพธ์: 7`
ในตัวอย่างข้างต้น เราใช้คีย์เวิร์ด <<-
เพื่อเข้าถึง ตัวแปร nested_variable
ภายใน nested_function
และแก้ไขค่าของตัวแปร local_variable
ที่อยู่นอกขอบเขตของฟังก์ชัน
เมื่อเราเรียกใช้ฟังก์ชัน my_function()
โปรแกรมจะแสดงผลลัพธ์ของ nested_variable
ซึ่งเป็น 10
และ local_variable
ซึ่งเปลี่ยนค่าเป็น 7
ด้วยการใช้คีย์เวิร์ด <<-
อย่างไรก็ตาม เมื่อเราพยายามเข้าถึงตัวแปร nested_variable
นอกเหนือจากขอบเขตที่มันถูกประกาศ เช่น การพิมพ์ print(nested_variable)
จะเกิดข้อผิดพลาดที่บอกว่า "Error: object 'nested_variable' not found" เนื่องจากตัวแปรนั้นไม่ถูกต้องในขอบเขตที่เหลืออยู่ในโปรแกรม
การเข้าถึงและแก้ไขตัวแปรในขอบเขตที่แตกต่างกันในภาษา R ด้วยคีย์เวิร์ด <<-
เป็นวิธีที่ใช้บ่อยในกรณีที่ต้องการเปลี่ยนแปลงค่าของตัวแปรนอกขอบ เขตของฟังก์ชัน แต่ควรใช้ในกรณีที่จำเป็นเท่านั้นเพื่อรักษาความชัดเจนและอ่านโค้ดได้ง่ายในอนาคต