2013-06-26 1 views
17

부모 디렉토리의 경로를 R로 어떻게 가져 옵니까? 상위 디렉토리의 디렉토리에서 입력을 받아 상위 폴더의 다른 디렉토리로 데이터를 출력하는 R 스크립트를 작성해야합니다. 따라서 부모 폴더에 대한 경로를 찾을 수 있으면이 작업을 수행 할 수 있습니다.부모 디렉토리가 R

답변

17

R의 작업 디렉토리의 상위 디렉토리를 의미한다고 가정합니까?

가장 간단한 해결책은 아마도 다음과 같습니다.

wd <- getwd() 
setwd("..") 
parent <- getwd() 
setwd(wd) 

이는 부모로 변경, 작업 디렉토리를 저장 parent에 결과를 가져오고 다시 작업 디렉토리를 다시 설정합니다. 이렇게하면 루트 디렉토리, 홈 디렉토리 및 기타 OS 고유 기능의 변덕을 처리해야하는 번거 로움을 피할 수 있습니다.이 기능에는 정규식을 사용하는 것이 필요합니다.

+2

+1 "..". 나는 항상 터미널에서 cd를 사용하지만,'R'을 할 필요가 없다. 감사합니다 – Michele

4

아마도이 두 가지 팁을

"/etc/" 

와 비슷한 뭔가를 할 수 유닉스에

"C:/" # you are in your main hard drive 
"G:/" # you are just in another hard drive :-) 

는 다음 하위로 내려 갈 수 창에 다음

"~/" # after the forward slash you "are" in your home folder 

도움이 될 수 있습니다 필요한 디렉토리

또는 @Hong 오오이는

"../" 

NB와 작업 디렉토리의 부모 디렉토리까지 갈 수 있듯이 : 단지 최종 슬래시 프레스 tab 후 당신은 모든 파일 및 폴더를 매우 것

dirname(getwd()) 
[1] "C:/Documents and Settings" 
+0

@ user2449961 당신이 작업 디렉토리의 부모를 의미한다면 (더 정확해야합니다) "../"**는 ** 필요한 경로입니다. 죄송합니다. 한번 시도해보십시오. 말 그대로''..를 입력하십시오./ "를 누르고'/'키를 누른 후에 부모 폴더 안의 모든 파일을 볼 수 있습니다. – Michele

+1

@ user2449961 댓글을 삭제하면 다른 사람들은 질문의 새로운 시청자에게 의미가 없습니다. – Michele

21

당신은 당신의 현재 디렉토리의 최상위 레벨을 제외한 모든 것을 추출 getwddirname를 사용할 수있는 편리 ity :

parts = unlist(strsplit(getwd(), .Platform$file.sep)) 
do.call(file.path, as.list(parts[1:length(parts) - 1])) 

이렇게하면 파일 경로가 디렉토리로 분할되고 마지막 디렉토리가 삭제 된 다음 파일 경로로 다시 결합됩니다.

+0

이것은보다 일반적인 해결책입니다 받아 들인 대답. – Nick

0

또 다른 possibil : 특히 RStudio

9

는 사실 dirname이 여러 상위 폴더

Path="FolderA/FolderB/FolderC/FolderD" 

dirname(Path) 

"폴 데라/FolderB/FolderC을"

dirname(dirname(Path)) 

로 돌아갈 수 있습니다 "폴 데라/FolderB"

등등. ..

+0

이것은 지금 제가 일하고있는 프로젝트에 필요한 것입니다. 감사합니다! –

관련 문제