Как мне вызвать функции, определенные в файле abc.R, в другом файле, например xyz.R?
Дополнительный вопрос: как вызвать функции, определенные в abc.R, из командной строки / приглашения R?
Ответы:
Вы можете вызвать с 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 есть много способов организовать рабочий процесс.