Я создал некоторые функции в R и всякий раз, когда мне нужна какая-либо из этих функций, мне нужно заново создать это. Пожалуйста, предложите мне способ и шаги, чтобы я мог напрямую использовать эти функции в любой сессии R без их воссоздания.Как автоматически загрузить функцию
ответ
У меня есть ряд функций, которые мне нужны во всех сеансах. Хитрость заключается в том, чтобы добавить их в ваш .First файл, чтобы они были отправлены на каждый сеанс по всему миру.
вспомогательную функцию, чтобы найти ваш первый-файл
find.first <- function(edit = FALSE, show_lib = TRUE){
candidates <- c(Sys.getenv("R_PROFILE"),
file.path(Sys.getenv("R_HOME"), "etc", "Rprofile.site"),
Sys.getenv("R_PROFILE_USER"),
file.path(getwd(), ".Rprofile")
)
first_hit <- Filter(file.exists, candidates)
if(show_lib & !edit){
return(first_hit)
}else {
file.edit(first_hit)
}
}
Say скрипты, которые вы используете везде в '/ MyStuff/R'
# Pop open the first Rprofile file.
find.first(edit = TRUE)
Вы увидите что-то вроде этого:
##Emacs please make this -*- R -*-
## empty Rprofile.site for R on Debian
##
## Copyright (C) 2008 Dirk Eddelbuettel and GPL'ed
##
## see help(Startup) for documentation on ~/.Rprofile and Rprofile.site
# ## Example of .Rprofile
# options(width=65, digits=5)
# options(show.signif.stars=FALSE)
# setHook(packageEvent("grDevices", "onLoad"),
# function(...) grDevices::ps.options(horizontal=FALSE))
# set.seed(1234)
#.First <- function(){}
#
#
Отредактируйте функцию примерно так:
.First <- function(){
all_my_r <- list.files('/mystuff/R', full.names = T,
recursive = T, pattern = ".R$")
lapply(all_my_r, function(i){
tryCatch(source(i), error = function(e)NULL)
})
}
Сохраните файл. Затем перезапустите сеанс.
Ох ... и в случае, если это не было очевидно, не комментируйте # .First –
Хотя ответ Карла приемлем, я лично считаю, что это именно та ситуация, когда вы должны упаковывать свои функции и просто называть их библиотекой.
Есть очень веские причины, чтобы сделать это: (! С акцентом)
- Документация
- Тесты
- Легкая загрузка (
library(mypackage)
) - Легко поделиться и переносимыми между системами
- Простота использования в отчетах (Rmd/knitr)
- Уменьшает потенциал дублирования
- Изучение системы пакетов R станет важной частью вашего инструментария, и другие преимущества организации вашего кода будут очевидны.
Я поддерживаю это сообщение сильно. –
- 1. Как загрузить формы автоматически
- 2. Как загрузить страницу автоматически?
- 3. Как загрузить rvm автоматически?
- 4. Как вызвать функцию автоматически?
- 5. Как автоматически загрузить PDF-файл?
- 6. Как загрузить карту google автоматически
- 7. Как загрузить servlet-context.xml автоматически?
- 8. Как автоматически загрузить этот javascript?
- 9. Как автоматически загрузить папку изображений?
- 10. Как автоматически вызывать функцию @IBAction
- 11. Как вызвать эту функцию автоматически
- 12. Как сгенерировать функцию C++ автоматически?
- 13. автоматически сгенерирует функцию
- 14. автоматически загрузить отчет
- 15. загрузить ключ PGP автоматически
- 16. Применить функцию подструктур автоматически
- 17. Загрузить изображения автоматически
- 18. Загрузить автоматически в iCloud
- 19. Как загрузить изображение в функцию?
- 20. R: Как загрузить фиксированную функцию
- 21. Как загрузить функцию при предыдущем вызове активности?
- 22. Загрузить функцию для fancyBox
- 23. Как проверить встроенную функцию автоматически преобразуется в обычную функцию компилятором?
- 24. Как загрузить файл автоматически без нажатия кнопки?
- 25. Как загрузить сайт на новой странице автоматически?
- 26. Как загрузить Wordpress на моем сервере автоматически?
- 27. Как загрузить данные в секционированной таблице автоматически
- 28. Как открыть письмо автоматически на странице загрузить
- 29. Как автоматически загрузить отчеты Google AdWords
- 30. Как автоматически загрузить несколько ссылок, управляемых javascripts?
Вы используете источник()? source() загружает функцию, если путь правильный –
и что вы имеете в виду, воссоздавая их каждый раз? –
http://www.statmethods.net/interface/customizing.html – Roland