[R] list.dirs() full.names broken?

J Toll jctoll at gmail.com
Fri Apr 13 16:14:17 CEST 2012


Hi,

I am trying to list all the sub-directories in a particular directory
and having a few issues.  list.dirs seems to be slightly broken and/or
poorly labelled.  My issue appears to be the same as this one, from
the archives:

http://tolstoy.newcastle.edu.au/R/e16/help/11/11/1156.html

Here is some of my current platform info:
R version 2.15.0 (2012-03-30)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
RStudio Version 0.95.263

Setting the full.names argument to FALSE simply doesn't appear to
work.  To get the desired behavior, I have to wrap the entire command
in basename(), as in the final example.  BTW, I've truncated to output
in width and length for the sake of brevity.

> getwd()
[1] "/Users/name/Documents/R"
> list.dirs(full.names = FALSE, recursive = FALSE)
 [1] "./abc"                 "./bcd"            "./cde"          "./data1"
> list.dirs(".", full.names = FALSE, recursive = FALSE)
 [1] "./abc"                 "./bcd"            "./cde"          "./data1"
> list.dirs("./", full.names = FALSE, recursive = FALSE)
 [1] ".//abc"                ".//bcd"           ".//cde"
".//data1"
> list.dirs("data1/SP", full.names = FALSE, recursive = FALSE)
  [1] "data1/SP/2010-01-29" "data1/SP/2010-12-13" "data1/SP/2010-12-31"
  [7] "data1/SP/2011-01-06" "data1/SP/2011-01-07" "data1/SP/2011-01-10"
 [13] "data1/SP/2011-01-14" "data1/SP/2011-01-18" "data1/SP/2011-01-19"
 [19] "data1/SP/2011-01-25" "data1/SP/2011-01-26" "data1/SP/2011-01-27"
> list.dirs("data/SP", full.names = TRUE, recursive = FALSE)
  [1] "data1/SP/2010-01-29" "data1/SP/2010-12-13" "data1/SP/2010-12-31"
  [7] "data1/SP/2011-01-06" "data1/SP/2011-01-07" "data1/SP/2011-01-10"
 [13] "data1/SP/2011-01-14" "data1/SP/2011-01-18" "data1/SP/2011-01-19"
 [19] "data1/SP/2011-01-25" "data1/SP/2011-01-26" "data1/SP/2011-01-27"
> basename(list.dirs("data1/SP", full.names = FALSE, recursive = FALSE))
  [1] "2010-01-29" "2010-12-13" "2010-12-31" "2011-01-03" "2011-01-04"
 [11] "2011-01-12" "2011-01-13" "2011-01-14" "2011-01-18" "2011-01-19"
 [21] "2011-01-27" "2011-01-28" "2011-01-31" "2011-02-01" "2011-02-02"
 [31] "2011-02-10" "2011-02-11" "2011-02-14" "2011-02-15" "2011-02-16"

Is the full.names argument broken, and what is it supposed to do?
Even as it currently is, I wouldn't exactly describe the outputted
pathnames as "full", more accurately as "relative pathnames" from the
current working directory.

Does anyone know if list.dirs is really broken or if this is the
desired behavior?

Thanks,


James



More information about the R-help mailing list