Re: [R] writing function:loop and rbind
Do you think there is a way to add somewhere the argument row.names=NULL ? Or should I have to write another line to remove the row.names? > -Original Message- > From: Joshua Wiley [mailto:jwiley.ps...@gmail.com] > Sent: Monday, May 24, 2010 5:07 PM > To: arnaud Gaboury > Cc: r-help@r-project.org > Subject: Re: [R] writing function:loop and rbind > > On Mon, May 24, 2010 at 7:00 AM, arnaud Gaboury > wrote: > > One solution is to create a list, then do.call. > > Here is my environment: > > > >> ls() > > [1] "DailyPL100416" "DailyPL100419" "DailyPL100420" "l" > "ll" > > "PLglobal" "Pos100415" "Pos100416" "Pos100419" > "Pos100420" > > "position" "r" > > [13] "result""sel" "select""Trad100415" > > "Trad100416""Trad100419""Trad100420""trade" "tt" > > "w" > > > >> l<-list(grep("DailyPL",ls(),value=T)) #create a list of elements > with > > DailyPL in the name > A list of their names, not the elements themselves. > > > >> l > > [[1]] > > [1] "DailyPL100416" "DailyPL100419" "DailyPL100420" > > > >> DF<-do.call("rbind",l) > >> DF > > [,1][,2][,3] > > [1,] "DailyPL100416" "DailyPL100419" "DailyPL100420" > > > > That's not what I want! I expect "DF" to be a data.frame binded by > row. > It is binded by row, but it is from the list you fed it, which is just > a list with a single element of character strings. > > > > I suspect there is an issue with get() or assign(), or something like > that. > > > > Any help is appreciated. > > I am sure there is a neater solution, but something like this should > work where envir=whether the objects actually are. > > do.call(rbind, mget(grep("DailyPL",ls(),value=TRUE),envir=.GlobalEnv)) > > Best regards, > > Josh > > > > >> -Original Message- > >> From: arnaud Gaboury [mailto:arnaud.gabo...@gmail.com] > >> Sent: Monday, May 24, 2010 2:55 PM > >> To: r-help@r-project.org > >> Cc: 'arnaud Gaboury' > >> Subject: writing function:loop and rbind > >> > >> Dear group, > >> > >> I have a function, let's call it myfun, wich give me a list of > result: > >> R1,R2,R3... > >> There is a loop in this function to get my results. Here is the > >> structure of > >> my function: > >> > >> Myfun<-function() > >> > >> { > >> For (i in X ){ > >> > >> ---instructions- > >> > >> Ri > >> > >> { > >> { > >> > >> All Results (R1,R2...) are Data.frame. As a final result (call it > >> "Final"), > >> I need to rbind all these dataframe. One solution could be to create > >> another > >> loop, but I think I can avoid it. How can I add a line like this : > >> Final<-rbind(R1,R2...) using the i parameter? Another solution could > >> may be > >> to create a list of all my results, then apply rbind to the list? > >> > >> Any idea would be appreciated. > >> > >> TY in advance > > > > __ > > 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 > Senior in Psychology > University of California, Riverside > http://www.joshuawiley.com/ __ 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.
Re: [R] writing function:loop and rbind
Maybe is there a neater solution, but the function mget() does the trick. So until further advice, I will work with your solution. Thank you > -Original Message- > From: Joshua Wiley [mailto:jwiley.ps...@gmail.com] > Sent: Monday, May 24, 2010 5:07 PM > To: arnaud Gaboury > Cc: r-help@r-project.org > Subject: Re: [R] writing function:loop and rbind > > On Mon, May 24, 2010 at 7:00 AM, arnaud Gaboury > wrote: > > One solution is to create a list, then do.call. > > Here is my environment: > > > >> ls() > > [1] "DailyPL100416" "DailyPL100419" "DailyPL100420" "l" > "ll" > > "PLglobal" "Pos100415" "Pos100416" "Pos100419" > "Pos100420" > > "position" "r" > > [13] "result""sel" "select""Trad100415" > > "Trad100416""Trad100419""Trad100420""trade" "tt" > > "w" > > > >> l<-list(grep("DailyPL",ls(),value=T)) #create a list of elements > with > > DailyPL in the name > A list of their names, not the elements themselves. > > > >> l > > [[1]] > > [1] "DailyPL100416" "DailyPL100419" "DailyPL100420" > > > >> DF<-do.call("rbind",l) > >> DF > > [,1][,2][,3] > > [1,] "DailyPL100416" "DailyPL100419" "DailyPL100420" > > > > That's not what I want! I expect "DF" to be a data.frame binded by > row. > It is binded by row, but it is from the list you fed it, which is just > a list with a single element of character strings. > > > > I suspect there is an issue with get() or assign(), or something like > that. > > > > Any help is appreciated. > > I am sure there is a neater solution, but something like this should > work where envir=whether the objects actually are. > > do.call(rbind, mget(grep("DailyPL",ls(),value=TRUE),envir=.GlobalEnv)) > > Best regards, > > Josh > > > > >> -Original Message- > >> From: arnaud Gaboury [mailto:arnaud.gabo...@gmail.com] > >> Sent: Monday, May 24, 2010 2:55 PM > >> To: r-help@r-project.org > >> Cc: 'arnaud Gaboury' > >> Subject: writing function:loop and rbind > >> > >> Dear group, > >> > >> I have a function, let's call it myfun, wich give me a list of > result: > >> R1,R2,R3... > >> There is a loop in this function to get my results. Here is the > >> structure of > >> my function: > >> > >> Myfun<-function() > >> > >> { > >> For (i in X ){ > >> > >> ---instructions- > >> > >> Ri > >> > >> { > >> { > >> > >> All Results (R1,R2...) are Data.frame. As a final result (call it > >> "Final"), > >> I need to rbind all these dataframe. One solution could be to create > >> another > >> loop, but I think I can avoid it. How can I add a line like this : > >> Final<-rbind(R1,R2...) using the i parameter? Another solution could > >> may be > >> to create a list of all my results, then apply rbind to the list? > >> > >> Any idea would be appreciated. > >> > >> TY in advance > > > > __ > > 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 > Senior in Psychology > University of California, Riverside > http://www.joshuawiley.com/ __ 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.
Re: [R] writing function:loop and rbind
On Mon, May 24, 2010 at 7:00 AM, arnaud Gaboury wrote: > One solution is to create a list, then do.call. > Here is my environment: > >> ls() > [1] "DailyPL100416" "DailyPL100419" "DailyPL100420" "l" "ll" > "PLglobal" "Pos100415" "Pos100416" "Pos100419" "Pos100420" > "position" "r" > [13] "result" "sel" "select" "Trad100415" > "Trad100416" "Trad100419" "Trad100420" "trade" "tt" > "w" > >> l<-list(grep("DailyPL",ls(),value=T)) #create a list of elements with > DailyPL in the name A list of their names, not the elements themselves. > >> l > [[1]] > [1] "DailyPL100416" "DailyPL100419" "DailyPL100420" > >> DF<-do.call("rbind",l) >> DF > [,1] [,2] [,3] > [1,] "DailyPL100416" "DailyPL100419" "DailyPL100420" > > That's not what I want! I expect "DF" to be a data.frame binded by row. It is binded by row, but it is from the list you fed it, which is just a list with a single element of character strings. > > I suspect there is an issue with get() or assign(), or something like that. > > Any help is appreciated. I am sure there is a neater solution, but something like this should work where envir=whether the objects actually are. do.call(rbind, mget(grep("DailyPL",ls(),value=TRUE),envir=.GlobalEnv)) Best regards, Josh > >> -Original Message- >> From: arnaud Gaboury [mailto:arnaud.gabo...@gmail.com] >> Sent: Monday, May 24, 2010 2:55 PM >> To: r-help@r-project.org >> Cc: 'arnaud Gaboury' >> Subject: writing function:loop and rbind >> >> Dear group, >> >> I have a function, let's call it myfun, wich give me a list of result: >> R1,R2,R3... >> There is a loop in this function to get my results. Here is the >> structure of >> my function: >> >> Myfun<-function() >> >> { >> For (i in X ){ >> >> ---instructions- >> >> Ri >> >> { >> { >> >> All Results (R1,R2...) are Data.frame. As a final result (call it >> "Final"), >> I need to rbind all these dataframe. One solution could be to create >> another >> loop, but I think I can avoid it. How can I add a line like this : >> Final<-rbind(R1,R2...) using the i parameter? Another solution could >> may be >> to create a list of all my results, then apply rbind to the list? >> >> Any idea would be appreciated. >> >> TY in advance > > __ > 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 Senior in Psychology University of California, Riverside http://www.joshuawiley.com/ __ 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.
Re: [R] writing function:loop and rbind
One solution is to create a list, then do.call. Here is my environment: > ls() [1] "DailyPL100416" "DailyPL100419" "DailyPL100420" "l" "ll" "PLglobal" "Pos100415" "Pos100416" "Pos100419" "Pos100420" "position" "r" [13] "result""sel" "select""Trad100415" "Trad100416""Trad100419""Trad100420""trade" "tt" "w" > l<-list(grep("DailyPL",ls(),value=T)) #create a list of elements with DailyPL in the name > l [[1]] [1] "DailyPL100416" "DailyPL100419" "DailyPL100420" > DF<-do.call("rbind",l) > DF [,1][,2][,3] [1,] "DailyPL100416" "DailyPL100419" "DailyPL100420" That's not what I want! I expect "DF" to be a data.frame binded by row. I suspect there is an issue with get() or assign(), or something like that. Any help is appreciated. > -Original Message- > From: arnaud Gaboury [mailto:arnaud.gabo...@gmail.com] > Sent: Monday, May 24, 2010 2:55 PM > To: r-help@r-project.org > Cc: 'arnaud Gaboury' > Subject: writing function:loop and rbind > > Dear group, > > I have a function, let's call it myfun, wich give me a list of result: > R1,R2,R3... > There is a loop in this function to get my results. Here is the > structure of > my function: > > Myfun<-function() > > { > For (i in X ){ > > ---instructions- > > Ri > > { > { > > All Results (R1,R2...) are Data.frame. As a final result (call it > "Final"), > I need to rbind all these dataframe. One solution could be to create > another > loop, but I think I can avoid it. How can I add a line like this : > Final<-rbind(R1,R2...) using the i parameter? Another solution could > may be > to create a list of all my results, then apply rbind to the list? > > Any idea would be appreciated. > > TY in advance __ 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.