subset an additional variable and append it to the previous one in R

為{幸葍}努か 提交于 2019-12-04 17:10:48

After Filtering the list elements ('h1'), subset those same elements from the original list where the 'control' is TRUE (logical column) and theen rbind the corresponding list elements with Map

foo <- function(List, what){     
   s <- substitute(what) 
   h <- lapply(List, function(x) do.call("subset", list(x, s)))
   h1 <- Filter(NROW, h)      
   h2 <- lapply(List[names(h1)], function(x) subset(x, control))
   Map(rbind, h1, h2)      
}


foo(L, type == 4)
#$Mubarak
#   study.name  group.name  n  d t.pair df mdif sdif  mpre sdpre  mpos sdpos      r rev.sign autoreg post control outcome ESL prof
#43    Mubarak   grA.short 17 NA  4.366 NA   NA   NA    NA    NA    NA    NA     NA    FALSE   FALSE    1   FALSE       1   2   NA
#44    Mubarak    grA.long 17 NA     NA NA   NA   NA 0.395 0.280 0.520 0.205 0.6737    FALSE   FALSE    2   FALSE       1   2   NA
#54    Mubarak  grB.shortB 16 NA  7.864 NA   NA   NA    NA    NA    NA    NA     NA     TRUE   FALSE    1   FALSE       2   2   NA
#55    Mubarak   grB.longB 16 NA     NA NA   NA   NA 0.105 0.030 0.056 0.025 0.5618     TRUE   FALSE    2   FALSE       2   2   NA
#47    Mubarak  Cont.short 13 NA  0.401 NA   NA   NA    NA    NA    NA    NA     NA    FALSE   FALSE    1    TRUE       1   2   NA
#48    Mubarak   Cont.long 13 NA     NA NA   NA   NA 0.545 0.272 0.436 0.204 0.5320    FALSE   FALSE    2    TRUE       1   2   NA
#49    Mubarak  Cont.short 13 NA  0.401 NA   NA   NA    NA    NA    NA    NA     NA    FALSE   FALSE    1    TRUE       1   2   NA
#50    Mubarak   Cont.long 13 NA     NA NA   NA   NA 0.545 0.272 0.436 0.204 0.5320    FALSE   FALSE    2    TRUE       1   2   NA
#56    Mubarak Cont.shortB 13 NA  2.793 NA   NA   NA    NA    NA    NA    NA     NA     TRUE   FALSE    1    TRUE       2   2   NA
#57    Mubarak  Cont.longB 13 NA     NA NA   NA   NA 0.093 0.032 0.078 0.032 0.9159     TRUE   FALSE    2    TRUE       2   2   NA
#   scope type
#43     2    4
#44     2    4
#54     2    4
#55     2    4
#47     2    2
#48     2    2
#49     2    2
#50     2    2
#56     2    2
#57     2    2
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!