Hello All, I have a device that spews out experimental data as a series of text files each of which contains one column with several rows of numeric data. My problem is that for each trial it gives me one text file (and I run between 30 to 50 trials at a time) and I would ideally like to merge all these text files into one large data frame with each column representing a single trial. It is not a problem if NA characters are added to make all the columna of eaqual length. Right now I am doing this by opening each file individually and cutting and pasting the data into an excel file. How can I do this in R assuming all my text files are in one directory. Is it also possible to customize the column headers. For example if I have 32 trials and 16 are experimental and 16 are control and I want to name the columns "Expt1", Expt2",... "Expt16" and the control columns "Cntl1",...Cntl16". Kartik
This will read in all the data files in a directory. I am assuming that your file names are the same as the column names you want. # use file names as column headers setwd(...where ever you want it....) result <- list() for (i in list.files()){ result[[i]] <- scan(i, what=0) # assume single column of numbers } max.length <- max(unlist(lapply(result, length))) # get maximum length # pad with NAs newData <- lapply(result, function(x){length(x) <- max.length; x}) yourDF <- data.frame(newData) On 7/29/06, Kartik Pappu <kartik.pappu@gmail.com> wrote:> > Hello All, > > I have a device that spews out experimental data as a series of text > files each of which contains one column with several rows of numeric > data. My problem is that for each trial it gives me one text file > (and I run between 30 to 50 trials at a time) and I would ideally like > to merge all these text files into one large data frame with each > column representing a single trial. It is not a problem if NA > characters are added to make all the columna of eaqual length. Right > now I am doing this by opening each file individually and cutting and > pasting the data into an excel file. How can I do this in R assuming > all my text files are in one directory. > > Is it also possible to customize the column headers. For example if I > have 32 trials and 16 are experimental and 16 are control and I want > to name the columns "Expt1", Expt2",... "Expt16" and the control > columns "Cntl1",...Cntl16". > > Kartik > > ______________________________________________ > R-help@stat.math.ethz.ch 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 Cincinnati, OH +1 513 646 9390 What is the problem you are trying to solve? [[alternative HTML version deleted]]
On 7/30/06, Kartik Pappu <kartik.pappu at gmail.com> wrote:> Hello All, > > I have a device that spews out experimental data as a series of text > files each of which contains one column with several rows of numeric > data. My problem is that for each trial it gives me one text file > (and I run between 30 to 50 trials at a time) and I would ideally like > to merge all these text files into one large data frame with each > column representing a single trial. It is not a problem if NA > characters are added to make all the columna of eaqual length. Right > now I am doing this by opening each file individually and cutting and > pasting the data into an excel file. How can I do this in R assuming > all my text files are in one directory. > > Is it also possible to customize the column headers. For example if I > have 32 trials and 16 are experimental and 16 are control and I want > to name the columns "Expt1", Expt2",... "Expt16" and the control > columns "Cntl1",...Cntl16". > > Kartik >setwd("E:/Cooperation @ Delft-Nijmegen (Feb. 2006 - Sep. 2006)/Research/Study 20 - Roughness/Experiment 20a - Roughness Index for CUReT textures/Statistics") # Concatenate the raw data files. data.path = "../data files/" (datafiles <- list.files(path=data.path, pattern="subject\_[0-9]+\.txt$")) exp20a <- do.call('rbind', lapply(datafiles, function(x) read.table(paste(data.path, x, sep="")))) rm(datafiles, data.path)