i have 3 data.frame objects needs filter out given threshold value simultaneously. want filter them out given threshold value data.frame objects. can give me possible idea accomplish task?
simulated data:
df1 <- data.frame( start=seq(1, by=9, len=18), end=seq(6, by=9, len=18), id=letters[seq(1:18)], score=sample(1:25, 18, replace = false)) df2 <- data.frame( start=seq(2, by=11, len=20), end=seq(8, by=11, len=20), id=letters[seq(1:20)], score=sample(1:25, 20, replace = false)) df3 <- data.frame( start=seq(4, by=11, len=25), end=seq(9, by=11, len=25), id=letters[seq(1:25)], score=sample(1:25, 25, replace = false))
my attempt solution follows:
filtering out given threshold:
df.li <- list(df1, df2, df3) keep <- obj$score <= 12 test <- lapply(df.li, function(ele_) { keep <- ele_$score <= 12 discard <- ele_[!keep] res <- data.frame(kee=keep, dis=discard) return(res) })
my desired output:
if approach can happen, going group of filtering output each data.frame object list.
i think there might better way this. regarding question raised, what's better approach accomplish task? can point me out possible way solve issue? in advance.
you try:
lst <- list(df1, df2, df3) library(dplyr) lapply(lst, function(x) { filter(x, score <= 12) })
or per mentionned @akrun, in base r
:
lapply(lst, function(x) { subset(x, score <= 12) })
Comments
Post a Comment