2012-11-09 16 views
21

Używam Rscript do wykreślania niektórych liczb z danego pliku CSV w niektórych katalogach, co niekoniecznie jest moim bieżącym katalogiem roboczym. Mogę nazwać następująco:Jak uzyskać bezwzględną ścieżkę pliku wejściowego w R

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

Teraz chcę wyjście moje dane w tym samym katalogu (../some_directory), ale nie mam pojęcia jak to zrobić. Próbowałem uzyskać absolutną ścieżkę do pliku wejściowego, ponieważ z tego można zbudować ścieżkę wyjściową, ale nie mogłem się dowiedzieć, jak to zrobić.

Odpowiedz

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

lub

library(tools) 
file_path_as_absolute() 
+0

To nie działa od 2016 roku – Greg

+2

Zarówno 'normalizePath (". ")' Jak i 'file_path_as_absolute (". ")' Nadal działają dla mnie na R 3.2.3. – MattBagg

+0

@Greg możesz wymienić, które wersje R znalazłeś, że to nie działa? Mam zamiar zintegrować to w moim programie i byłoby naprawdę pomocne, aby wiedzieć z wyprzedzeniem, dzięki. – user5359531

2

Oto rozwiązanie:

args = commandArgs(TRUE) 

results_file = args[1] 

output_path = dirname(normalizePath(results_file)) 
+0

Wygląda na to, że 'dirname()' podaje tylko ścieżkę minus bieżący folder. Czy jest coś podobnego, co dałoby pełną ścieżkę? – Phillip

0

widzę, że ludzie dali kawałki rozwiązania, ale nie wszystkie. Użyłem tego:

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

Mam nadzieję, że to pomaga.

Powiązane problemy