ฉันจะเรียกฟังก์ชันที่กำหนดในไฟล์ abc.R ในไฟล์อื่นพูด xyz.R ได้อย่างไร
คำถามเสริมคือฉันจะเรียกฟังก์ชันที่กำหนดใน abc.R จาก R prompt / command line ได้อย่างไร
ฉันจะเรียกฟังก์ชันที่กำหนดในไฟล์ abc.R ในไฟล์อื่นพูด xyz.R ได้อย่างไร
คำถามเสริมคือฉันจะเรียกฟังก์ชันที่กำหนดใน abc.R จาก R prompt / command line ได้อย่างไร
คำตอบ:
คุณสามารถเรียกsource("abc.R")
ตามด้วยsource("xyz.R")
(สมมติว่าไฟล์ทั้งสองนี้อยู่ในไดเร็กทอรีการทำงานปัจจุบันของคุณ
ถ้า abc.R คือ:
fooABC <- function(x) {
k <- x+1
return(k)
}
และ xyz.R คือ:
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
จากนั้นจะใช้งานได้:
> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 5
>
แม้ว่าจะมีการอ้างอิงแบบวัฏจักรสิ่งนี้ก็จะใช้ได้
เช่นถ้า abc.R คือสิ่งนี้:
fooABC <- function(x) {
k <- barXYZ(x)+1
return(k)
}
barABC <- function(x){
k <- x+30
return(k)
}
และ xyz.R คือ:
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
barXYZ <- function(x){
k <- barABC(x)+20
return(k)
}
จากนั้น
> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 55
>
source
ใช้ไฟล์ / ฟังก์ชันเพียงครั้งเดียว จากนั้นจะอยู่ในพื้นที่ทำงานของคุณและคุณสามารถใช้งานได้ตลอดเวลา หากคุณเปลี่ยนคุณต้องจัดหาแหล่งข้อมูลใหม่ หากฟังก์ชันของคุณมีการเปลี่ยนแปลงอย่างมากเนื่องจากคุณกำลังแปลงรหัสให้รวมไว้ในไฟล์เดียวและสร้างข้อมูลทั้งหมดทุกครั้ง คุณยังสามารถมีไฟล์ขนาดเล็กแยกต่างหากซึ่ง 1. แหล่งที่มาของคอลเลกชันของฟังก์ชันขนาดใหญ่และ 2. เรียกใช้กรณีทดสอบของคุณ ใน R มีหลายวิธีในการจัดเรียงลำดับงานของคุณ