assignเป็นสิ่งที่ดี แต่ฉันไม่พบฟังก์ชันสำหรับอ้างอิงกลับไปยังตัวแปรที่คุณสร้างขึ้นในสคริปต์อัตโนมัติ ( as.nameดูเหมือนจะทำงานในทางตรงกันข้าม) ผู้เขียนโค้ดที่มีประสบการณ์มากกว่าจะมีทางออกที่ดีกว่าอย่างไม่ต้องสงสัย แต่โซลูชันนี้ใช้งานได้และอาจมีอารมณ์ขันเล็กน้อยเนื่องจากได้รับ R เพื่อเขียนโค้ดเพื่อดำเนินการเอง
สมมติว่าฉันเพิ่งกำหนดค่า 5 ให้กับx( var.name <- "x"; assign(var.name, 5)) และฉันต้องการเปลี่ยนค่าเป็น 6 ถ้าฉันเขียนสคริปต์และไม่รู้ล่วงหน้าว่าชื่อตัวแปร ( var.name) จะเป็นอย่างไร (ซึ่งดูเหมือนจะเป็นจุดของassignฟังก์ชั่น) ผมไม่สามารถเพียงแค่ใส่x <- 6เพราะอาจได้รับvar.name "y"ดังนั้นฉันจึง:
var.name <- "x"
assign(var.name, 5)
write(paste0(var.name, " <- 6"), "tmp.R")
source("tmp.R")
file.remove("tmp.R")
xจะเปลี่ยนเป็น 6 และหากชื่อตัวแปรเป็นชื่ออื่นนอกเหนือจาก"x"นั้นตัวแปรนั้นจะถูกเปลี่ยนเป็น 6 ในทำนองเดียวกัน