Hi, You didn't provide a reproducible example, which makes helping a whole lot harder.
You're misunderstanding how to define a new function. Not only is g specified incorrectly, you're creating a new function called out within your loop and trying to save that to disk. You need to do more like this g <- function(args) { Does stuff Return value } And then call it with out <- g(args) But it seems to me that merge() might do the trick. Sarah On Friday, October 4, 2013, franklin johnson wrote: > Hello, > > I have a list of four files. Each file is a list of gene models, and each > gene model has attributes in file columns. The sample_week-over-sample_week > fold change value foreach i in file is in column 5. The gene model ID is in > column 1. To make it more complicated, each gene i may not be found in all > four files. I've written R scripts to try to 1) write a function to iterate > over each file in the working directory, 2) if a gene model, i, is missing > in a file(x), paste an "NA" as the value for that key and 3) make one > master file from the four files with column names as indicated below in the > code. > > function(g)( > > for( i in x){ > if( i == NULL) > print( text("NA")) > else( print(x[i,5])) #Fold-change value > )) > > files <- list.files( path=getwd(), pattern="*.txt", full.names=T, > recursive=FALSE) > lapply( files, function(x) { > x <- read.table( x, header=T) # load file > # apply function > out <- function(g) > # write to file > write.table( out, "myfile.txt", sep="\t", quote=F, row.names=F, > col.names=T) > colnames(out)[1] = "ca02" > colnames(out)[2] = "ca24" > colnames(out)[3] = "ca48" > colnames(out)[4] = "ca812" > }) > }) > > The code has no errors, but the file doesn't write to my working directory. > I don't think this path is the problem either. > > I've seen the do.call function, thinking this may be the way to go. > > Also, if I'd like to add a third column to the master file from the four > files, for example, the BLAST description for that gene model, i, in column > 7, how to handle this command as well? I'm kinda new to R but hit a wall > when it comes to this level, as I have had no classroom training on writing > code. Hopefully, I can break on through with your assistance. Thanks much > and have a nice day. > -- > Franklin > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org <javascript:;> 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. > -- Sarah Goslee http://www.stringpage.com http://www.sarahgoslee.com http://www.functionaldiversity.org [[alternative HTML version deleted]] ______________________________________________ R-help@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.