Como chamo funções definidas no arquivo abc.R em outro arquivo, digamos xyz.R?
Uma pergunta complementar é: como chamo funções definidas em abc.R a partir do prompt / linha de comando R?
Respostas:
Você pode chamar source("abc.R")
seguido por source("xyz.R")
(assumindo que ambos os arquivos estejam em seu diretório de trabalho atual.
Se abc.R for:
fooABC <- function(x) {
k <- x+1
return(k)
}
e xyz.R é:
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
então isso vai funcionar:
> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 5
>
Mesmo se houver dependências cíclicas, isso funcionará.
Por exemplo, se abc.R é este:
fooABC <- function(x) {
k <- barXYZ(x)+1
return(k)
}
barABC <- function(x){
k <- x+30
return(k)
}
e xyz.R é este:
fooXYZ <- function(x) {
k <- fooABC(x)+1
return(k)
}
barXYZ <- function(x){
k <- barABC(x)+20
return(k)
}
então,
> source("abc.R")
> source("xyz.R")
> fooXYZ(3)
[1] 55
>
source
um arquivo / função uma vez. Então, ele estará em sua área de trabalho e você poderá usá-lo a qualquer momento. Se você alterá-lo, terá que recriá-lo. Se suas funções estão mudando muito desde que você está convertendo o código, coloque-as todas em um arquivo e apenas forneça o código inteiro sempre. Você também pode ter um arquivo menor separado que 1. origina a coleção maior de funções e 2. Executa seus casos de teste. No R, há muitas maneiras de organizar seu fluxo de trabalho.