[R] Reorder file names read by list.files function

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Tue Oct 9 22:44:39 CEST 2018


Hello,

I would do something along the lines of

# work in the directory where the files are located
old_dir <- setwd(path)
file.names <- list.files(pattern = "\\.PDF")

[...]

# When you are done reset your wd
setwd(old_dir)


Hope this helps,

Rui Barradas

Às 21:38 de 09/10/2018, Ek Esawi escreveu:
> Hi again,
> 
> I worked with RUi's idea of using the match function with month.name.
> I got numerical values for months then i sorted and pasted the PDF
> file extension. It gave me the file order i wanted, but now statements
> 8,9,&10 don't work and i kept getting an error which is listed below.
> The dilemma is if i add full.names=TRUE in statement 6 then statements
> 9 and 10 don't produce what they did earlier. If i put
> full.names=FALSE, then i am back to square 1.
> Any idea is greatly appreciated.:
> 
> The code
> 
> 1. nstall.packages("tabulizer")
> 2. installed.packages("stringr")
> 3. library(stringr)
> 4. library(tabulizer)
> 5. path = "C:/Users/namei/Documents/TextMining/S2017"
> 6. file.names <- dir(path, pattern =".PDF",full.names = TRUE)
> 7. file.names <- str_remove(file.names,"\\s[0-9][0-9]")
> 8. FNs <- sort(match(sub("\\.PDF", "", file.names), month.name))
> 9. FNs1 <- paste0(month.name[FNs],".","PDF")
> 10 A <- lapply(FNs1, function(i) extract_tables(i))
> 
> Output and the error message.
> 
> path = "C:/Users/eesawi/Documents/TextMining/S2017"
>> file.names <- dir(path, pattern =".PDF",full.names = TRUE)
>> file.names <- str_remove(file.names,"\\s[0-9][0-9]")
>> FNs <- sort(match(sub("\\.PDF", "", file.names), month.name))
>> FNs1 <- paste0(month.name[FNs],".","PDF")
>> A <- lapply(FNs1, function(i) extract_tables(i))
>   Show Traceback
> 
>   Error in normalizePath(path.expand(path), winslash, mustWork) :
>    path[1]=".PDF": The system cannot find the file specified
> On Tue, Oct 9, 2018 at 9:44 AM Ek Esawi <esawiek using gmail.com> wrote:
>>
>> Hi All--
>>
>> I used base R list.file function to read files from a directory. The
>> file names are months (April, August, etc). That's the system reads
>> them in alphabetical order., but i want to reordered them in calendar
>> order (January, February, ...December).. I thought i might be able to
>> do it via RegEx or possibly gtools package, I am wondering if there is
>> an easier way.
>>
>> Thanks--EK
>>
>> Example
>> path = "C:/Users/name/Downloads/MyFiles"
>> file.names <- dir(path, pattern =".PDF")
>>
>> Example output
>> Output:
>> "February.PDF"  "January.PDF" "March.PDF"
>> Desired output
>> "January.PDF"  "February.PDF" "March.PDF"
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>




More information about the R-help mailing list