Настройка рабочего каталога через функцию
Я новичок в R. Я столкнулся с проблемой установки моего рабочего каталога с помощью функции. Вот что я попробовал:
myfunction<-function(directory)
{
setwd(paste(getwd(),("/directory"))
}
Когда я запускаю myfunction("name"), выдает ошибку: невозможно изменить рабочий каталог.
Заранее спасибо за помощь.
3 ответа
Попробуй это:
myfunction <- function(directory) setwd( file.path(getwd(), directory) )
или понимая, что getwd()
по умолчанию, поэтому его не нужно указывать:
myfunction <- function(directory) setwd(directory)
или понимая, что ваша функция на самом деле выполняет ту же функцию, что и setwd
это будет работать:
myfunction <- setwd
Я не знаю, но если вам интересно, это может быть полезно:
https://github.com/imanojkumar/MyFunctions1/blob/master/README.md
Или просто используйте приведенный ниже код:
source("https://raw.githubusercontent.com/imanojkumar/MyFunctions1/master/ChangeDirectory.R")
Приведенный выше исходный файл содержит следующие три кода:
1. Попросите пользователя указать путь к каталогу.
directory <- readline('Enter Path to Directory You want to set as
Default (use backslash e.g. "E:/MyDirectory") : ')
2. Функцияmyfunction <- function(directory) {
if (!is.null(directory))
setwd(directory)
}
3. Функция работает в фоновом режиме и устанавливает пользовательский каталог по умолчанию
myfunction(directory)
Проблема, с которой вы сталкиваетесь, использует "/directory". Вы получите результат, если вы просто используете каталог вместо "каталог", как в:
myfunction <- function (directory) {
setwd (каталог)
}
Если вы используете функцию вставки, вывод будет символьной строкой, и в конце она будет интерпретироваться как изменение моего рабочего каталога на "каталог", который не существует, и, следовательно, ошибка. R добавляет свое собственное "", и, следовательно, ваша функция становится setwd(""directory""). Вы можете прочитать больше в справке для path.expand()