Chciałbym uzyskać pełną nazwę pliku w R, biorąc pod uwagę standardowe zapisy. NpW pełni kwalifikowana nazwa pliku w R
- plik.roz
- ~/plik.roz (w tym przypadku mogą być obsługiwane przez
path.expand
) - ../current_dir/file.ext
- itp
Poprzez pełną nazwę pliku mam na myśli, na przykład, (w systemie Unix-like):
/home/user/some/path/file.ext
(red - stosowanie file.path i próba wsparcia Windows) Surowy realizacja może być:
path.qualify <- function(path) {
path <- path.expand(path)
if(!grepl("^/|([A-Z|a-z]:)", path)) path <- file.path(getwd(),path)
path
}
Jednak ja Idealnie lubię coś międzyplatformowego, które może obsługiwać względne ścieżki z ../
, dowiązaniami symbolicznymi itp. Preferowane byłoby rozwiązanie tylko R (zamiast skryptów powłoki lub podobnych), ale nie mogę znaleźć żadnego prostego sposobu robienia tego, kodowania go "od zera".
Wszelkie pomysły?
Doskonale, nawet odsyła do dowiązań symbolicznych - tylko problem, który nie obejmuje przypadku '~/file.ext'. Łatwo rozliczane za pomocą 'normalizePath (path.expand (filename))'. Wielkie dzięki. – daveslanted
@daveslanted Robi to w wersji 2.13.0. Zobacz moją zaktualizowaną odpowiedź. Jaką wersję R masz na koncie? –
R 2.12.2. Prawdopodobnie będę musiał trzymać się obejścia zamiast ulepszać, ale dobrze wiedzieć, że został naprawiony w najnowszej stabilnej wersji. Dzięki jeszcze raz. – daveslanted