2012-11-09 37 views
21

Tôi đang sử dụng Rscript để vẽ một số số liệu từ một tệp CSV đã cho trong một số thư mục, không nhất thiết là thư mục làm việc hiện tại của tôi. Tôi có thể gọi nó như sau:Làm cách nào để lấy đường dẫn tuyệt đối của tệp đầu vào trong R

./script.r ../some_directory/inputfile.csv 

Bây giờ tôi muốn xuất số liệu của mình vào cùng một thư mục (../some_directory), nhưng tôi không biết làm cách nào để thực hiện điều đó. Tôi đã cố gắng để có được đường dẫn tuyệt đối cho các tập tin đầu vào bởi vì từ này tôi có thể xây dựng đường dẫn đầu ra, nhưng tôi không thể tìm ra cách để làm điều đó.

Trả lời

34
normalizePath() #Converts file paths to canonical user-understandable form 

hoặc

library(tools) 
file_path_as_absolute() 
+0

Điều này không hoạt động kể từ năm 2016 – Greg

+2

Cả hai 'normalizePath (". ")' Và 'file_path_as_absolute (". ")' Vẫn hoạt động đối với tôi trên R 3.2.3. – MattBagg

+0

@Greg bạn có thể liệt kê (các) phiên bản nào của R bạn thấy rằng điều này không hoạt động không? Tôi sắp tích hợp điều này trong chương trình của tôi và nó sẽ thực sự hữu ích để biết trước, cảm ơn. – user5359531

2

Dưới đây là giải pháp:

args = commandArgs(TRUE) 

results_file = args[1] 

output_path = dirname(normalizePath(results_file)) 
+0

Có vẻ như 'dirname()' chỉ cung cấp đường dẫn trừ đi thư mục hiện tại. Có cái gì đó tương tự mà sẽ cung cấp cho con đường đầy đủ? – Phillip

0

Tôi thấy rằng mọi người đã phần của giải pháp, nhưng không phải tất cả của nó. Tôi đã sử dụng điều này:

outputFile = paste(normalizePath(dirname(inputFile)),"\\", "my_file.ext", sep = "") 

Hy vọng điều đó sẽ hữu ích.

Các vấn đề liên quan