I will post the whole function, but I believe the problem is in the 3th part.
The issue is that oilDF has different number of rows than oilDF2.

Thank you,
Rui

myScan <- function(dirPath, num) 
{
#dirPath is the name of the directory where we want to apply the function. It 
should be called from the immediate above level without the last 3 characters. 
For example dirPath="oil_0" 
#num is the mussel number
   
    #Heart rate 
    startPath=getwd()
    workPath=paste(startPath,"/", dirPath,"_HR", sep="")
    setwd(workPath)
    temp=dir()
    d=sort(temp)
    oilDF=read.table (d[1], header=TRUE)
    oilDF=data.frame(oilDF[,1], oilDF[,2], oilDF[,num+2])
    for(i in 2:length(d))
    {
        temp <- read.table(d[i], header=TRUE)
        temp=data.frame(temp[,1], temp[,2], temp[,num+2])
        colnames(temp) <- colnames(oilDF)
        oilDF=rbind(oilDF,temp)
    }
    setwd(startPath)

    #Valve Gape
    workPath=paste(startPath,"/", dirPath,"_VG", sep="")
    setwd(workPath)
    temp=dir()
    d=sort(temp)
    oilDF2=read.table (d[1], header=FALSE)
    oilDF2=data.frame(oilDF2[,1],oilDF2[,2],oilDF2[,num+3])
    for(i in 2:length(d))
    {
        temp <- read.table(d[i], header=FALSE)
        temp=data.frame(temp[,1], temp[,2], temp[,num+3])
        colnames(temp) <- colnames(oilDF2)
        oilDF2=rbind(oilDF2,temp)
    }

    #Pack both signals in a vector of dataframes for each Mussel. 
    ds <- vector("list", 2)
    timeHR = as.numeric(strptime(paste(oilDF[,1],oilDF[,2]), "%m/%d/%y 
%H:%M:%OS"))
    timeVG = as.numeric(strptime(paste(oilDF2[,1],oilDF2[,2]), "%d/%m/%y 
%H:%M:%OS"))
    ds[[1]] <- data.frame(timeHR,oilDF[,3])
    ds[[2]] <- data.frame(timeVG,oilDF2[,3])
    write.csv(ds,paste(startPath, "/", "mussel_", i, dirPath, ".csv", sep=""))
    return(ds)
}

> Date: Sun, 22 May 2011 11:33:38 -0700
> Subject: Re: [R] How to intantiate a list of data.frames?
> From: jwiley.ps...@gmail.com
> To: ruimax...@hotmail.com
> CC: r-help@r-project.org
> 
> Hi Rui,
> 
> data frames must have the same number of rows, but two different data
> frames stored within a list do not need to have the same number of
> rows.  Can you please post the code that is giving the error?
> 
> Josh
> 
> On Sun, May 22, 2011 at 9:41 AM, Rui Maximo <ruimax...@hotmail.com> wrote:
> > Hi Josh,
> >
> > Sorry, your examples have equal number of rows in both df and df2.
> > In my situation they haven't.
> > Strangely, your solution have worked only when I am copy post the code into
> > the command line.
> > If I use the code inside of a function I get an error at:
> > return(ds)
> > ERROR: arguments imply differing number of rows
> >
> > Thanks,
> > Rui
> >
> >> Date: Sat, 21 May 2011 11:46:05 -0700
> >> Subject: Re: [R] How to intantiate a list of data.frames?
> >> From: jwiley.ps...@gmail.com
> >> To: ruimax...@hotmail.com
> >> CC: r-help@r-project.org
> >>
> >> Hi Rui,
> >>
> >> Here is one option:
> >>
> >> ds <- vector("list", 6)
> >> for(i in 1:6) ds[[i]] <- list(df = mtcars[, c(i, i + 2)], df2 =
> >> mtcars[, c(i, i + 2)] + 10)
> >>
> >> another could be:
> >>
> >> altds <- lapply(1:6, function(x) {
> >> list(df = mtcars[, c(x, x + 2)], df2 = mtcars[, c(x, x + 2)] + 10)
> >> })
> >>
> >> all.equal(ds, altds)
> >>
> >> For some documentation, see
> >>
> >> ?vector
> >> ?lapply
> >>
> >> Cheers,
> >>
> >> Josh
> >>
> >> On Sat, May 21, 2011 at 10:47 AM, Rui Maximo <ruimax...@hotmail.com>
> >> wrote:
> >> >
> >> > Hello,
> >> >
> >> >  I am newbie to R and I want to do this:
> >> >
> >> > for(i in 1:6)
> >> > {
> >> >        ds[i] <- list(df=data.frame(oilDF[,1],oilDF[,i+2]),
> >> > df2=data.frame(oilDF2[,1],oilDF2[,i+2]))
> >> > }
> >> >
> >> > #oilDF and oilDF2 are 2 data frames with several columns. They have
> >> > different number of rows
> >> >
> >> > #I want to have for example ds[1]$df, ds[1]$df2 with the respective
> >> > data.frames.
> >> > #How can I instantiate a list of data.frames pairs with different number
> >> > of rows?
> >> >
> >> > Thank you,
> >> > Rui
> >> >
> >> >        [[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.
> >> >
> >>
> >>
> >>
> >> --
> >> Joshua Wiley
> >> Ph.D. Student, Health Psychology
> >> University of California, Los Angeles
> >> http://www.joshuawiley.com/
> >
> 
> 
> 
> -- 
> Joshua Wiley
> Ph.D. Student, Health Psychology
> University of California, Los Angeles
> http://www.joshuawiley.com/
                                          
        [[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.

Reply via email to