Jak wywołać funkcje zdefiniowane w pliku abc.R w innym pliku, powiedzmy xyz.R?
Dodatkowe pytanie brzmi: jak wywołać funkcje zdefiniowane w abc.R z wiersza poleceń / wiersza poleceń R?
Odpowiedzi:
Możesz wywołać, source("abc.R")
a następnie source("xyz.R")
(zakładając, że oba te pliki znajdują się w twoim bieżącym katalogu roboczym.
Jeśli abc.R to:
fooABC <- function(x) {
k <- x+1
return(k)
}
a xyz.R to:
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
to zadziała:
> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 5
>
Nawet jeśli istnieją cykliczne zależności, to zadziała.
Np. Jeśli abc.R to:
fooABC <- function(x) {
k <- barXYZ(x)+1
return(k)
}
barABC <- function(x){
k <- x+30
return(k)
}
a xyz.R to:
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
barXYZ <- function(x){
k <- barABC(x)+20
return(k)
}
następnie,
> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 55
>
source
pliku / funkcji. Następnie znajduje się w Twoim obszarze roboczym i możesz z niego korzystać w dowolnym momencie. Jeśli to zmienisz, musisz go ponownie pozyskać. Jeśli twoje funkcje bardzo się zmieniają od czasu konwertowania kodu, umieść je wszystkie w jednym pliku i za każdym razem źródłuj całość. Można również mieć oddzielny, mniejszy plik, który 1. stanowi źródło większej kolekcji funkcji i 2. Uruchamia przypadki testowe. W R jest wiele sposobów na organizację pracy.