Skip to content
Back to formatted view

Raw Message

Message-ID: <CAKVAULNMLRrS7TLE4SQBAvLz-pk-=YTvjnFGvXwqiKV3DjbXvw@mail.gmail.com>
Date: 2017-01-18T17:32:54Z
From: Ulrik Stervbo
Subject: can this be simplified with purrr:map or mapply?
In-Reply-To: <6E8D8DFDE5FA5D4ABCB8508389D1BF88C59FE672@SRVEXCHCM301.precheza.cz>

If you want to use purrr, you could do

fil <- paste0("data",2004:2014,".txt")
map_df(fil, read.table, .id = "fil")

to get everything in one data frame (I assume all files have the same
structure)

HTH
Ulrik

On Wed, 18 Jan 2017 at 16:10 PIKAL Petr <petr.pikal at precheza.cz> wrote:

> Hi
>
> Let me make some assumptions. Your data are stored as *txt files somewhere.
>
> I would start with vector of file names
>
> fil<-paste0("data",2004:2014,".txt")
> > fil
>  [1] "data2004.txt" "data2005.txt" "data2006.txt" "data2007.txt"
> "data2008.txt"
>  [6] "data2009.txt" "data2010.txt" "data2011.txt" "data2012.txt"
> "data2013.txt"
> [11] "data2014.txt"
>
> than I would read my files into predefined list
>
> mylist<-vector(length=11, mode="list")
>
> You can add names to this list by
> names(mylist) <- fil
>
> Than simple cycle
>
> for (i in seq_along(fil)) {
>
> mylist[[i]] <- read.table(fil[i])
>
> ... you could also do some polishing of single files here
> }
>
> Now you have list of data frames and you can do many operations on this
> whole list instead on separate data frames.
>
> Further operations depend on structure of your data frames and your exact
> intention what do you want to do with them.
>
> I wonder why merge is appropriate if you have separate data for each year.
> Why not to use rbind followed by aggregate.
>
> But here I am fishing in really murky water.
>
> Cheers
> Petr
>
>
> > -----Original Message-----
> > From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of Brandon
> > Payne
> > Sent: Wednesday, January 18, 2017 10:57 AM
> > To: r-help at r-project.org
> > Subject: [R] can this be simplified with purrr:map or mapply?
> >
> > I can't get my head around the *apply family of functions,
> > surely there's a better way than what I have.
> > I've tried using paste0 on the years, but then I have lists of strings,
> not
> > data frames.
> >
> > `realList<-paste0("exp",as.character(2004:2014),"s")`
> >
> > I can't seem to convert these lists of strings to references to data
> frames.
> >
> > years<-c(2004:2014)
> > framesEXP<-
> > list(exp2004s,exp2005s,exp2006s,exp2007s,exp2008s,exp2009s,exp2011s,ex
> > p2010s,exp2012s,exp2013s,exp2014s)
> >
> > framesFAM<-
> > list(fam2004s,fam2005s,fam2006s,fam2007s,fam2008s,fam2009s,fam2011s,fa
> > m2010s,fam2012s,fam2013s,fam2014s)
> >
> > data2004<<-merge(exp2004s,fam2004s, by="HHNUM")
> > data2005<<-merge(exp2005s,fam2005s, by="HHNUM")
> > data2006<<-merge(exp2006s,fam2006s, by="HHNUM")
> > data2007<<-merge(exp2007s,fam2007s, by="HHNUM")
> > data2008<<-merge(exp2008s,fam2008s, by="HHNUM")
> > data2009<<-merge(exp2009s,fam2009s, by="HHNUM")
> > data2010<<-merge(exp2010s,fam2010s, by="HHNUM")
> > data2011<<-merge(exp2011s,fam2011s, by="HHNUM")
> > data2012<<-merge(exp2012s,fam2012s, by="HHNUM")
> > data2013<<-merge(exp2013s,fam2013s, by="HHNUM")
> > data2014<<-merge(exp2014s,fam2014s, by="HHNUM")
> >
> > dput(data2004, file="../dataframes/data2004.txt")
> > dput(data2005, file="../dataframes/data2005.txt")
> > dput(data2006, file="../dataframes/data2006.txt")
> > dput(data2007, file="../dataframes/data2007.txt")
> > dput(data2008, file="../dataframes/data2008.txt")
> > dput(data2009, file="../dataframes/data2009.txt")
> > dput(data2010, file="../dataframes/data2010.txt")
> > dput(data2011, file="../dataframes/data2011.txt")
> > dput(data2012, file="../dataframes/data2012.txt")
> > dput(data2013, file="../dataframes/data2013.txt")
> > dput(data2014, file="../dataframes/data2014.txt")
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help at 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 at 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]]