Hallo, I build a list by the following way: Lst = list(name="Fred", wife="Mary", no.children=3, cild.ages=c(4,7,9)) I know how I can extract the information one by one. But now I want to add a new entry which looks like name="Barney", wife="Liz", no.children=2, cild.ages=c(3,5) How can I add this information to Lst without overwriting the first entry? How can I then extract the corresponding information if I have both entries in Lst? Thanks for helping, Corinna
Lst <- list() Lst[[1]] <- list(name="Fred", wife="Mary", no.children=3, cild.ages=c(4,7,9)) Lst[[2]] <- list(name="Barney", wife="Liz", no.children=2, cild.ages=c(3,5)) I.e. a list of lists Regards Michael Schmitt, Corinna wrote:> Hallo, > > I build a list by the following way: > > Lst = list(name="Fred", wife="Mary", no.children=3, cild.ages=c(4,7,9)) > > I know how I can extract the information one by one. But now I want to > add a new entry which looks like > > name="Barney", wife="Liz", no.children=2, cild.ages=c(3,5) > > How can I add this information to Lst without overwriting the first > entry? > How can I then extract the corresponding information if I have both > entries in Lst? > > Thanks for helping, > > Corinna > > ______________________________________________ > R-help at stat.math.ethz.ch 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. >-- Michael T. Mader Institute of Stem Cell Research GSF - National Research Center for Environment and Health Ingolstaedter Landstrasse 1 D-85764 Neuherberg 0049-89-3187-3683 Program testing can be quite effective for showing the presence of bugs, but is hopelessly inadequate for showing their absence. E. W. Dijkstra
maybe it'd be better to use a data.frame(), e.g., dat <- data.frame(name = I("Fred"), wife = I("Mary"), no.children = 3, cild.ages1 = 4, cild.ages2 = 7, cild.ages3 = 9) ############## new.info <- c(name = "Barney", wife = "Liz", no.children=2, cild.ages1 = 3, cild.ages2 = 5, cild.ages3 = NA) rbind(dat, new.info) I hope it helps. Best, Dimitris ---- Dimitris Rizopoulos Ph.D. Student Biostatistical Centre School of Public Health Catholic University of Leuven Address: Kapucijnenvoer 35, Leuven, Belgium Tel: +32/(0)16/336899 Fax: +32/(0)16/337015 Web: http://med.kuleuven.be/biostat/ http://www.student.kuleuven.be/~m0390867/dimitris.htm ----- Original Message ----- From: "Schmitt, Corinna" <Corinna.Schmitt at igb.fraunhofer.de> To: <r-help at stat.math.ethz.ch> Sent: Monday, March 26, 2007 3:26 PM Subject: [R] Listing function> Hallo, > > I build a list by the following way: > > Lst = list(name="Fred", wife="Mary", no.children=3, > cild.ages=c(4,7,9)) > > I know how I can extract the information one by one. But now I want > to > add a new entry which looks like > > name="Barney", wife="Liz", no.children=2, cild.ages=c(3,5) > > How can I add this information to Lst without overwriting the first > entry? > How can I then extract the corresponding information if I have both > entries in Lst? > > Thanks for helping, > > Corinna > > ______________________________________________ > R-help at stat.math.ethz.ch 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. >Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm
Hallo, good idea it is working. A new question appears: How can I display the entries in a table like name wife no.children child.ages Fred Mary 3 4,7,9 Barney Liz 2 3,5 Thanks, Corinna -----Urspr?ngliche Nachricht----- Von: Michael T. Mader [mailto:m.mader at gsf.de] Gesendet: Montag, 26. M?rz 2007 15:32 An: Schmitt, Corinna; r-help at stat.math.ethz.ch Betreff: Re: [R] Listing function Lst <- list() Lst[[1]] <- list(name="Fred", wife="Mary", no.children=3, cild.ages=c(4,7,9)) Lst[[2]] <- list(name="Barney", wife="Liz", no.children=2, cild.ages=c(3,5)) I.e. a list of lists Regards Michael Schmitt, Corinna wrote:> Hallo, > > I build a list by the following way: > > Lst = list(name="Fred", wife="Mary", no.children=3, cild.ages=c(4,7,9)) > > I know how I can extract the information one by one. But now I want to > add a new entry which looks like > > name="Barney", wife="Liz", no.children=2, cild.ages=c(3,5) > > How can I add this information to Lst without overwriting the first > entry? > How can I then extract the corresponding information if I have both > entries in Lst? > > Thanks for helping, > > Corinna > > ______________________________________________ > R-help at stat.math.ethz.ch 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. >-- Michael T. Mader Institute of Stem Cell Research GSF - National Research Center for Environment and Health Ingolstaedter Landstrasse 1 D-85764 Neuherberg 0049-89-3187-3683 Program testing can be quite effective for showing the presence of bugs, but is hopelessly inadequate for showing their absence. E. W. Dijkstra
Use c() to extend your list creating a list of lists: Lst = list(name="Fred", wife="Mary", no.children=3, cild.ages=c(4,7,9)) Lst <- c(list(Lst), list(list(name="Barney", wife="Liz", no.children=2, cild.ages=c(3,5)))) You can give names to the components: Lst <- c(Fred=list(Lst), Barney=list(list(name="Barney", wife="Liz", no.children=2, cild.ages=c(3,5)))) See ?c for more information. You can also use a data.frame if this looks too messy. Petr Schmitt, Corinna napsal(a):> Hallo, > > I build a list by the following way: > > Lst = list(name="Fred", wife="Mary", no.children=3, cild.ages=c(4,7,9)) > > I know how I can extract the information one by one. But now I want to > add a new entry which looks like > > name="Barney", wife="Liz", no.children=2, cild.ages=c(3,5) > > How can I add this information to Lst without overwriting the first > entry? > How can I then extract the corresponding information if I have both > entries in Lst? > > Thanks for helping, > > Corinna > > ______________________________________________ > R-help at stat.math.ethz.ch 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. >-- Petr Klasterecky Dept. of Probability and Statistics Charles University in Prague Czech Republic