Làm cách nào để gọi các hàm được xác định trong tệp abc.R trong tệp khác, chẳng hạn như xyz.R?
Một câu hỏi bổ sung là, làm cách nào để gọi các hàm được định nghĩa trong abc.R từ dòng nhắc / lệnh R?
Câu trả lời:
Bạn có thể gọi source("abc.R")
theo sau là source("xyz.R")
(giả sử rằng cả hai tệp này đều nằm trong thư mục làm việc hiện tại của bạn.
Nếu abc.R là:
fooABC <- function(x) {
k <- x+1
return(k)
}
và xyz.R là:
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
thì điều này sẽ hoạt động:
> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 5
>
Ngay cả khi có sự phụ thuộc theo chu kỳ, điều này sẽ hoạt động.
Ví dụ: Nếu abc.R là:
fooABC <- function(x) {
k <- barXYZ(x)+1
return(k)
}
barABC <- function(x){
k <- x+30
return(k)
}
và xyz.R là:
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
barXYZ <- function(x){
k <- barABC(x)+20
return(k)
}
sau đó,
> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 55
>
source
một tệp / chức năng một lần. Sau đó, nó nằm trong không gian làm việc của bạn và bạn có thể sử dụng nó bất cứ lúc nào. Nếu thay đổi thì phải dẫn nguồn lại. Nếu các chức năng của bạn đang thay đổi nhiều vì bạn đang chuyển đổi mã, hãy đặt tất cả chúng vào một tệp và chỉ cần nguồn toàn bộ mọi thứ. Bạn cũng có thể có một tệp nhỏ hơn riêng biệt 1. tạo nguồn cho bộ sưu tập các hàm lớn hơn và 2. Chạy các trường hợp thử nghiệm của bạn. Trong R có rất nhiều cách để bạn sắp xếp công việc.