Then you need to rethink your data structure. Use a list instead of a data frame. The components of a list can have different lengths, and the "apply" family of functions (lapply(), etc.) can operate on them. Consult any good R tutorial for details.
Cheers, Bert Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Tue, Feb 27, 2018 at 5:54 AM, Ek Esawi <esaw...@gmail.com> wrote: > Thank you Pikal and Bert. My apology for posting parts of my previous > email in HTML. Bert's suggestion will work but i am wondering if there > is an alternative > especially in the case where the data frames are big; that is the > difference in lengths among them is large. Below is a list of sample > date frames and desired result. > > EK > > > dput(df1<-data.frame(col1=c(1,2,3,4,5),col2=c("aa","aa","bb","cc","dd"))) > dput(df2<-data.frame(col1=c(1,2,4,5),col2=c("bb","bb","cc","bb"))) > dput(df3<-data.frame(col1=c(1,3),col2=c("aa","aa"))) > # desired result > dput(dfn<-data.frame(col1=c(2,2,1,1),col2=c(0,3,1,0),col3=c( > 2,0,0,0),row.names > = c("aa","bb","cc","dd"))) > > On Fri, Feb 23, 2018 at 7:45 AM, PIKAL Petr <petr.pi...@precheza.cz> > wrote: > > Hi > > > > Your example is rather confusing - partly because HTML formating, partly > because weird coding. > > > > You probably could concatenate your data frames e.g. by rbind or merge > and after that you could try to aggregate them somehow. > > > > I could construct example data.frames myself but most probably they > would be different from yours and also the result would not be necessary > the same as you expect. > > > > You should post those data frames as output from dput(data) and show us > real desired result from those example data frames. > > > > Cheers > > Petr > > > >> -----Original Message----- > >> From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Ek > Esawi > >> Sent: Wednesday, February 21, 2018 3:34 AM > >> To: r-help@r-project.org > >> Subject: [R] Aggregate over multiple and unequal column length data > frames > >> > >> Hi All-- > >> > >> I have generated several 2 column data frames with variable length. The > data > >> frames have the same column names and variable types. I was trying to > >> aggregate over the 2nd column for all the date frames, but could not > figure out > >> how. > >> > >> I thought i could make them all of equal length then combine them in 1 > data > >> frame where i can use aggregate, the formula version Or to put them in > a list > >> and loop use lapply but did not know how to do that and thought there > might > >> be a simpler way. > >> > >> Below is an example of 3 data frames and the desired result; note that > some > >> levels don't appear in all and may be null over all variable, like the > case of dd > >> on the desired result which i would like to list all levels even if > some are all null. > >> > >> Thanks in advance, > >> > >> EK > >> > >> df1 df2 df3 > >> > >> c1 c2 c1 c2 c1 c2 > >> 1 aa 1 bb 1 aa > >> 2 aa 2 bb 2 aa > >> 3 bb 3 cc > >> 4 cc 4 bb > >> 5 bb > >> > >> desired result > >> > >> c1 c2 c2 c2 > >> aa 2 2 > >> bb 1 2 2 > >> cc 1 1 > >> dd > >> > >> [[alternative HTML version deleted]] > >> > >> ______________________________________________ > >> R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > >> 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. > > > > ________________________________ > > Tento e-mail a jakékoliv k němu připojené dokumenty jsou důvěrné a jsou > určeny pouze jeho adresátům. > > Jestliže jste obdržel(a) tento e-mail omylem, informujte laskavě > neprodleně jeho odesílatele. Obsah tohoto emailu i s přílohami a jeho kopie > vymažte ze svého systému. > > Nejste-li zamýšleným adresátem tohoto emailu, nejste oprávněni tento > email jakkoliv užívat, rozšiřovat, kopírovat či zveřejňovat. > > Odesílatel e-mailu neodpovídá za eventuální škodu způsobenou > modifikacemi či zpožděním přenosu e-mailu. > > > > V případě, že je tento e-mail součástí obchodního jednání: > > - vyhrazuje si odesílatel právo ukončit kdykoliv jednání o uzavření > smlouvy, a to z jakéhokoliv důvodu i bez uvedení důvodu. > > - a obsahuje-li nabídku, je adresát oprávněn nabídku bezodkladně > přijmout; Odesílatel tohoto e-mailu (nabídky) vylučuje přijetí nabídky ze > strany příjemce s dodatkem či odchylkou. > > - trvá odesílatel na tom, že příslušná smlouva je uzavřena teprve > výslovným dosažením shody na všech jejích náležitostech. > > - odesílatel tohoto emailu informuje, že není oprávněn uzavírat za > společnost žádné smlouvy s výjimkou případů, kdy k tomu byl písemně zmocněn > nebo písemně pověřen a takové pověření nebo plná moc byly adresátovi tohoto > emailu případně osobě, kterou adresát zastupuje, předloženy nebo jejich > existence je adresátovi či osobě jím zastoupené známá. > > > > This e-mail and any documents attached to it may be confidential and are > intended only for its intended recipients. > > If you received this e-mail by mistake, please immediately inform its > sender. Delete the contents of this e-mail with all attachments and its > copies from your system. > > If you are not the intended recipient of this e-mail, you are not > authorized to use, disseminate, copy or disclose this e-mail in any manner. > > The sender of this e-mail shall not be liable for any possible damage > caused by modifications of the e-mail or by delay with transfer of the > email. > > > > In case that this e-mail forms part of business dealings: > > - the sender reserves the right to end negotiations about entering into > a contract in any time, for any reason, and without stating any reasoning. > > - if the e-mail contains an offer, the recipient is entitled to > immediately accept such offer; The sender of this e-mail (offer) excludes > any acceptance of the offer on the part of the recipient containing any > amendment or variation. > > - the sender insists on that the respective contract is concluded only > upon an express mutual agreement on all its aspects. > > - the sender of this e-mail informs that he/she is not authorized to > enter into any contracts on behalf of the company except for cases in which > he/she is expressly authorized to do so in writing, and such authorization > or power of attorney is submitted to the recipient or the person > represented by the recipient, or the existence of such authorization is > known to the recipient of the person represented by the recipient. > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see 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.