[R] how to filter variables which appear in any row but do not include

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Wed Jun 3 18:50:19 CEST 2020


Hello,

If you want to filter out rows with any of the values in a 'unwanted' 
vector, try the following.

First, create a test data set.

x <- scan(what = character(), text = '
"E10"  "E103" "E104" "E109" "E101" "E108" "E105" "E100" "E106" "E102"
"E107" "E11"  "E119" "E113" "E115" "E111" "E114" "E110" "E118" "E116" "E112"
"E117"
')

set.seed(2020)
dat <- replicate(5, sample(x, 20, TRUE))
dat <- as.data.frame(dat)


Now, remove all rows that have at least one of "E102" or "E112"


unwanted <- c("E102", "E112")
no <- sapply(dat, function(x){
   grepl(paste(unwanted, collapse = "|"), x)
})
no <- apply(no, 1, any)
dat[!no, ]


That's it, if I understood the problem.


Hope this helps,

Rui Barradas


Às 15:55 de 03/06/20, Ana Marija escreveu:
> Hello.
> 
> I am trying to filter only rows that have ANY of these variables:
> E109, E119, E149
> 
> so I did:
> controls=t %>% filter_all(any_vars(. %in% c("E109", "E119","E149")))
> 
> than I checked what I got:
>> s0 <- sapply(controls, function(x) grep('^E10', x, value = TRUE))
>> d0=unlist(s0)
>> d10=unique(d0)
>> d10
>   [1] "E10"  "E103" "E104" "E109" "E101" "E108" "E105" "E100" "E106" "E102"
> [11] "E107"
> s1 <- sapply(controls, function(x) grep('^E11', x, value = TRUE))
> d1=unlist(s1)
> d11=unique(d1)
>> d11
>   [1] "E11"  "E119" "E113" "E115" "E111" "E114" "E110" "E118" "E116" "E112"
> [11] "E117"
> 
> I need help with changing this command
> controls=t %>% filter_all(any_vars(. %in% c("E109", "E119","E149")))
> 
> so that in the output I do not have any rows that include E102 or E112?
> 
> Thanks
> Ana
> 
> ______________________________________________
> R-help using 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.
>



More information about the R-help mailing list