Skip to content

about reading files in order

4 messages · lily li, Henrik Bengtsson, Adams, Jean

#
Hi R users,
I have a question about opening the txt files and putting them into a
matrix. The txt files are in the folder01, while they have the name
file.1.txt, file.2.txt, file.3.txt, etc. There are about 200 such text
files. Each txt file contains one value inside. When I tried to use the
code below, I found that the txt files are not in order, from 1, 2, 3, to
200. Rather, they are in the order 1, 10, 100, 101, etc. How to change it
so that they are in order? Thanks for your help.

temp <- list.files('folder01',pattern="*.txt"
name.list <-lapply(paste('folder01',temp,sep='/'),read.table,head=F)
library(data.table)
files.matrix <-rbindlist(name.list)

Also, when use the code below, how to complete it so that the values of the
files are stored in a matrix?
lists = list.files('folder01')
for (i in 1:length(lists)){
  file <- read.table(paste('folder01',lists[i],sep='/'),head=F)
  print(file)
}
#
You can use:
to order the files in a "human-friendly" order rather than
lexicographic order (which sort() provides).

FYI 1; it's preferred to use file.path("folder01", list[i]) rather
than paste('folder01',lists[i],sep='/').

FYI 2; if you use list.files(path = "folder01", full.names = TRUE),
you get the full paths rather name just the file names, i.e. you don't
have to use file.path().

/Henrik
On Thu, Jun 29, 2017 at 12:04 PM, lily li <chocold12 at gmail.com> wrote:
#
Thanks for that answer.
I was not aware of gtools::mixedsort
<https://www.rdocumentation.org/packages/gtools/versions/3.5.0/topics/mixedsort>
function.

Jean

On Thu, Jun 29, 2017 at 2:47 PM, Henrik Bengtsson <
henrik.bengtsson at gmail.com> wrote:

            

  
  
#
Thanks also.
On Thu, Jun 29, 2017 at 2:12 PM, Adams, Jean <jvadams at usgs.gov> wrote: