Esta es una forma...

> for(i in c('Ozone', 'Solar.R')) {
+   print(i)
+   sub_data <- subset(airquality, eval(parse(text=i)) < 100)
+   res_ult <- mean(sub_data$Temp, na.rm = TRUE)
+   print(res_ult)
+ }
[1] "Ozone"
[1] 77.34862
[1] "Solar.R"
[1] 71.85294

Y otra forma à la dplyr...:

> library(rlang)
> for(i in c('Ozone', 'Solar.R')) {
+   print(i)
+   res_ult <- airquality %>%
+     filter(!!sym(i) < 100) %>%
+     summarize(Media = mean(Temp, na.rm = TRUE))
+   print(res_ult)
+ }
[1] "Ozone"
     Media
1 77.34862
[1] "Solar.R"
     Media
1 71.85294

Saludos,
Carlos Ortega
www.qualityexcellence.es



El mié., 12 dic. 2018 a las 14:09, Manuel Mendoza (<mmend...@mncn.csic.es>)
escribió:

> Muy buenas.  Quiero hacer un loop en el que en cada iteración se hace
> un subset con el que se queda con las muestras para la que cierta
> variable es positiva.
>
> Si hago esto, sale bien:
>
> df2<-subset(df, subset = var1>0)
>
>
> Pero he probado así (y de no sé cuantas formas más), antes de hacer el
> for, y no sale:
>
> GT<- c("var1","var2", … )
>
> df2<-subset(df, subset=(GT[1]>0))
>
> Gracias,
> Manuel
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> .
>
> --
> Dr Manuel Mendoza
> Department of Biogeography and Global Change
> National Museum of Natural Science (MNCN)
> Spanish Scientific Council (CSIC)
> C/ Serrano 115bis, 28006 MADRID
> Spain
>
> _______________________________________________
> R-help-es mailing list
> R-help-es@r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>


-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

        [[alternative HTML version deleted]]

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a