[R] how to remove rows in which 2 or more observations are smaller than a given threshold?
Phil Spector
spector at stat.berkeley.edu
Sun Feb 27 00:49:28 CET 2011
If the matrix in question is named "mymat", then
mymat[apply(mymat,1,function(x)sum(abs(x) <= 1.58) < 2),]
(untested due to a lack of a reproducible example) should give
you a matrix without any rows containing two or more values
with absolute value less than 1.58.
I'm not sure ifelse would be of much use here.
- Phil Spector
Statistical Computing Facility
Department of Statistics
UC Berkeley
spector at stat.berkeley.edu
On Sat, 26 Feb 2011, hind lazrak wrote:
> Hello
>
> The data set I am examining has 7425 observations (rows with unique
> identifiers) and 46 samples(columns).
>
> I have been trying to generate a dataset that filters out observations
> that are "negligible"
> The definition of "negligible" is absolute value less or equal to 1.58.
>
> The rule that I would like to adopt to create a new data is: drop rows
> in which 2 or more observations have absolute values <= 1.58.
>
> Since I have unique identifier per row, I have tried to reshape the
> data so I could create a new variable using an ifelse statement that
> would flag observations <=1.58 but I am not getting anywhere with this
> approach
>
> I could not come up with an apply function that counts the number of
> observations for which the absolute values are below the cutoff I've
> specified.
>
> All observations are numerical and I don't have missing values.
>
>
> Thank you in advance for the help,
>
> Hind
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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