Well, just for giggles, Gerrit's solution can be easily vectorized (i.e. no apply()-type stuff needed) IFF the structure of all the data frames are identical so that rbind() works:
d <-do.call('rbind',Total[select.stat]) ## one data frame to combine them all ;-) d[d$sensor == 'thermometer','code'] Whether this is better, worse, or unneeded, I cannot say. Cheers, Bert On Thu, Dec 15, 2022 at 6:11 AM Gerrit Eichner < gerrit.eich...@math.uni-giessen.de> wrote: > Hello, Stefano, > > maybe the following example contains what you want to achieve: > > Station1 <- data.frame(sensor = c("thermometer", "raingauge", > "snowgauge", "anemometer"), > code = c(2583, 1478, 3178, NA)) > Station2 <- data.frame(sensor = c("thermometer", "raingauge", > "snowgauge", "anemometer"), > code = c(2584, 1479, 3179, 4453)) > Station3 <- data.frame(sensor = c("thermometer", "raingauge", > "snowgauge", "anemometer"), > code = c(2584, 1479, 3179, 4453)) > Station4 <- data.frame(sensor = rev(c("thermometer", "raingauge", > "snowgauge", "anemometer")), > code = c(2584, 1479, 3179, 4453)) > Station5 <- data.frame(sensor = c("raingauge", "snowgauge", > "thermometer", "anemometer"), > code = c(2584, 1479, 3179, 4453)) > > Total <- list("Station1"=Station1, "Station2"=Station2, > Station3 = Station3, Station4 = Station4, > Station5 = Station5) > > select.stat <- paste0("Station", c(1, 4, 5)) > select.sens <- "thermometer" > > sapply(Total[select.stat], function(x, sens) > x$code[x$sensor == sens], sens = select.sens) > > > > Hth -- Gerrit > > --------------------------------------------------------------------- > Dr. Gerrit Eichner Mathematical Institute, Room 212 > gerrit.eich...@math.uni-giessen.de Justus-Liebig-University Giessen > Tel: +49-(0)641-99-32104 Arndtstr. 2, 35392 Giessen, Germany > http://www.uni-giessen.de/eichner > --------------------------------------------------------------------- > > Am 15.12.2022 um 14:52 schrieb Stefano Sofia: > > Dear R-list users, > > > > I have a list of n data frames built as follows: > > > > > > Station1 <- data.frame(sensor = c("thermometer", "raingauge", > "snowgauge", "anemometer"), code = c(2583, 1478, 3178, NA)) > > Station2 <- data.frame(sensor = c("thermometer", "raingauge", > "snowgauge", "anemometer"), code = c(2584, 1479, 3179, 4453)) > > .... > > > > Total <- list("Station1"=Station1, "Station2"=Station2, ...) > > > > I would need to have a vector with the sensor codes of the thermometers > of some stations, let's say of Station1, Station2 and Station5 (i.e. > c(2583, 2584, 2587)). > > I tried with lapply, but I have not been able to get what I need. > > Could you please help me? > > > > Thank you > > > > Stefano > > > > > > > > (oo) > > --oOO--( )--OOo-------------------------------------- > > Stefano Sofia PhD > > Civil Protection - Marche Region - Italy > > Meteo Section > > Snow Section > > Via del Colle Ameno 5 > > 60126 Torrette di Ancona, Ancona (AN) > > Uff: +39 071 806 7743 > > E-mail: stefano.so...@regione.marche.it > > ---Oo---------oO---------------------------------------- > > > > ________________________________ > > > > AVVISO IMPORTANTE: Questo messaggio di posta elettronica pu� contenere > informazioni confidenziali, pertanto � destinato solo a persone autorizzate > alla ricezione. I messaggi di posta elettronica per i client di Regione > Marche possono contenere informazioni confidenziali e con privilegi legali. > Se non si � il destinatario specificato, non leggere, copiare, inoltrare o > archiviare questo messaggio. Se si � ricevuto questo messaggio per errore, > inoltrarlo al mittente ed eliminarlo completamente dal sistema del proprio > computer. Ai sensi dell'art. 6 della DGR n. 1394/2008 si segnala che, in > caso di necessit� ed urgenza, la risposta al presente messaggio di posta > elettronica pu� essere visionata da persone estranee al destinatario. > > IMPORTANT NOTICE: This e-mail message is intended to be received only by > persons entitled to receive the confidential information it may contain. > E-mail messages to clients of Regione Marche may contain information that > is confidential and legally privileged. Please do not read, copy, forward, > or store this message unless you are an intended recipient of it. If you > have received this message in error, please forward it to the sender and > delete it completely from your computer system. > > > > -- > > > > Questo messaggio stato analizzato da Libraesva ESG ed risultato non > infetto. > > > > This message was scanned by Libraesva ESG and is believed to be clean. > > > > > > [[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. > > ______________________________________________ > 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.