Как мне получить путь к родительскому каталогу в R? Я должен написать R script, который принимает входные данные из каталога в родительском каталоге и выводит данные в другой каталог в родительской папке. Итак, если бы я мог найти путь к родительской папке, тогда я мог бы это сделать.
Родительский каталог в R
Ответ 1
Вы можете использовать dirname
на getwd
, чтобы извлечь все, кроме верхнего уровня вашего текущего каталога:
dirname(getwd())
[1] "C:/Documents and Settings"
Ответ 2
Я предполагаю, что вы имеете в виду родительский каталог рабочего каталога R?
Самое простое решение, вероятно, состоит в следующем.
wd <- getwd()
setwd("..")
parent <- getwd()
setwd(wd)
Это сохраняет рабочий каталог, изменяет его на родителя, получает результат в parent
и снова сбрасывает рабочий каталог. Это экономит на том, чтобы иметь дело с капризами корневых каталогов, домашних каталогов и других специфичных для ОС функций, которые, вероятно, потребуют путаницы с регулярными выражениями.
Ответ 3
Фактически dirname позволяет вернуться к нескольким родительским папкам
Path="FolderA/FolderB/FolderC/FolderD"
dirname(Path)
"FolderA/FolderB/FolderC"
dirname(dirname(Path))
"FolderA/FolderB"
И так далее...
Ответ 4
Возможно, эти два совета помогут
"~/" # after the forward slash you "are" in your home folder
затем в окнах
"C:/" # you are in your main hard drive
"G:/" # you are just in another hard drive :-)
в unix вы можете сделать что-то подобное с
"/etc/"
тогда вы можете перейти в любой подкаталог, который вам нужен
Или, поскольку @Hong Ooi предлагает вам перейти в родительский каталог вашего рабочего каталога с помощью
"../"
NB: сразу после последней косой черты нажмите tab
, и у вас будет весь файл и папка, очень удобная, особенно в RStudio
Ответ 5
Другая возможность:
parts <- unlist(strsplit(getwd(), .Platform$file.sep))
do.call(file.path, as.list(parts[1:length(parts) - 1]))
Это разбивает путь к файлу на каталоги, удаляет последний каталог, а затем снова объединяет части в путь к файлу.