Reading multiple text files and then combining into a dataframe
Does this do it for you:
#Creating example data in similar format to data I have sub <- rep(1,10) trial <- seq(1,10,1) size <- rep(3,10) shortest <- rep(444,10) startlab <- rep(444,10) endlab <- rep(444,10) startconf <- rep(444,10) endconf <- rep(444,10) steps <- sample(1:30,10) time <- sample(1:300,10) #creating example of text file and saving into a shared director with other txt files subject1 <-
+ cbind(sub,trial,size,shortest,startlab,endlab,startconf,endconf,steps,time)
write.table(subject1, "/temp/subject1.txt", sep=" ") #2nd example of same text file sub <- rep(2,10) trial <- seq(1,10,1) size <- rep(3,10) shortest <- rep(444,10) startlab <- rep(444,10) endlab <- rep(444,10) startconf <- rep(444,10) endconf <- rep(444,10) steps <- sample(1:30,10) time <- sample(1:300,10) subject1 <-
+ cbind(sub,trial,size,shortest,startlab,endlab,startconf,endconf,steps,time)
write.table(subject1, "/temp/subject2.txt", sep=" ")
setwd("/temp")
#Getting list of file names
file_name <- list.files(pattern="subject*")
mydata <- lapply (file_name, read.table, sep=" ", header=T, row.names=NULL)
# rbind to dataframe
mydf <- do.call(rbind, mydata)
# or use the plyr package
require(plyr)
mydf.1 <- ldply(file_name, read.table, sep = ' ', header = TRUE, row.names = NULL)
str(mydf)
'data.frame': 20 obs. of 11 variables: $ row.names: chr "1" "2" "3" "4" ... $ sub : int 1 1 1 1 1 1 1 1 1 1 ... $ trial : int 1 2 3 4 5 6 7 8 9 10 ... $ size : int 3 3 3 3 3 3 3 3 3 3 ... $ shortest : int 444 444 444 444 444 444 444 444 444 444 ... $ startlab : int 444 444 444 444 444 444 444 444 444 444 ... $ endlab : int 444 444 444 444 444 444 444 444 444 444 ... $ startconf: int 444 444 444 444 444 444 444 444 444 444 ... $ endconf : int 444 444 444 444 444 444 444 444 444 444 ... $ steps : int 10 28 20 18 4 21 5 3 8 7 ... $ time : int 225 188 205 189 103 227 148 221 275 14 ...
str(mydf.1)
'data.frame': 20 obs. of 11 variables: $ row.names: chr "1" "2" "3" "4" ... $ sub : int 1 1 1 1 1 1 1 1 1 1 ... $ trial : int 1 2 3 4 5 6 7 8 9 10 ... $ size : int 3 3 3 3 3 3 3 3 3 3 ... $ shortest : int 444 444 444 444 444 444 444 444 444 444 ... $ startlab : int 444 444 444 444 444 444 444 444 444 444 ... $ endlab : int 444 444 444 444 444 444 444 444 444 444 ... $ startconf: int 444 444 444 444 444 444 444 444 444 444 ... $ endconf : int 444 444 444 444 444 444 444 444 444 444 ... $ steps : int 10 28 20 18 4 21 5 3 8 7 ... $ time : int 225 188 205 189 103 227 148 221 275 14 ...
On Fri, Dec 2, 2011 at 11:51 PM, James Holland <holland.aggie at gmail.com> wrote:
I have a multiple text files, separated by a single space, that I need to
combine into a single data.frame. ?Below is the track I'm on using
list.files to capture the names of the files and then lapply with
read.table. ?But I run into problems making a usable dataframe out of the
data.
#Creating example data in similar format to data I have
sub <- rep(1,10)
trial <- seq(1,10,1)
size <- rep(3,10)
shortest <- rep(444,10)
startlab <- rep(444,10)
endlab <- rep(444,10)
startconf <- rep(444,10)
endconf <- rep(444,10)
steps <- sample(1:30,10)
time <- sample(1:300,10)
#creating example of text file and saving into a shared director with other
txt files
subject1 <-
cbind(sub1,trial,size,shortest,startlab,endlab,startconf,endconf,steps,time)
write.table(subject1, "C:Folder/R/subject1.txt", sep=" ")
#2nd example of same text file
sub <- rep(2,10)
trial <- seq(1,10,1)
size <- rep(3,10)
shortest <- rep(444,10)
startlab <- rep(444,10)
endlab <- rep(444,10)
startconf <- rep(444,10)
endconf <- rep(444,10)
steps <- sample(1:30,10)
time <- sample(1:300,10)
subject1 <-
cbind(sub1,trial,size,shortest,startlab,endlab,startconf,endconf,steps,time)
write.table(subject1, "C:Folder/R/subject2.txt", sep=" ")
setwd("C:Folder/R/")
#Getting list of file names
file_name <- list.files(pattern="subject*")
mydata <- lapply (file_name, read.table, sep=" ", header=T, row.names=NULL)
Thank you,
James
? ? ? ?[[alternative HTML version deleted]]
______________________________________________ R-help at r-project.org mailing list 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.
Jim Holtman Data Munger Guru What is the problem that you are trying to solve? Tell me what you want to do, not how you want to do it.