[R] Filtering an Entire Dataset based on Several Conditions

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Mon May 9 11:22:48 CEST 2022


Something like this?
First normalize the data.
Then a apply loop creates a logical matrix giving which numbers are in 
the range -3 to 3.
If they are all TRUE then their sum by rows is equal to the number of 
columns. This creates a logical index i.
Use that index i to subset the scaled data set.

# test data set, remove the Species column (not numeric)
df1 <- iris[-5]

df1_norm <- scale(df1)
i <- rowSums(apply(df1_norm, 2, \(x) x > -3 & x < 3)) == ncol(df1_norm)

# returns a matrix
df1_norm[i, ]

# returns a data.frame

Hope this helps,

Rui Barradas

Às 09:23 de 09/05/2022, Paul Bernal escreveu:
> Dear friends,
> I have a dataframe which every single (i,j) entry (i standing for ith row,
> j for jth column) has been normalized (converted to z-scores).
> Now I want to filter or subset the dataframe so that I only end up with a a
> dataframe containing only entries greater than -3 or less than 3.
> How could I accomplish this?
> Best,
> Paul
> 	[[alternative HTML version deleted]]
> ______________________________________________
> 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