[R] Remove a complete row as per the Range in a Matrix
David Winsemius
dwinsemius at comcast.net
Tue Jul 31 18:24:09 CEST 2012
On Jul 31, 2012, at 1:31 AM, Rui Barradas wrote:
> Hello,
>
> Please learn how to use dput(), it's not your first post.
> And try the following.
>
>
> myMatrix <- data.matrix(read.table(text="
I think the data.matrix transformation is a bad idea. It forces the
numeric values to be character and the collation sequence is driven
off the first letter, so "19" is less than "9", and "1010" is less
than "2"
> Name Age
> ANTONY 27
> IMRAN 30
> RAJ 22
> NAHAS 32
> GEO 42
> ", header=TRUE))
>
Why not just:
myDF <- read.table(text="Name Age
ANTONY 27
IMRAN 30
RAJ 22
NAHAS 32
GEO 42
", header=TRUE)
MinMax <- c(MIN = 25,MAX=35)
# using a named vector rather than a two column dataframe
> myDF[ myDF$Age > MinMax["MIN"] & myDF$Age < MinMax["MAX"] , ]
Name Age
1 ANTONY 27
2 IMRAN 30
4 NAHAS 32
--
David.
> MinMaxArray <- data.frame(MIN = 25,MAX=35)
>
> inx <- MinMaxArray[[ "MIN" ]] <= myMatrix[, "Age"] & myMatrix[,
> "Age"] <= MinMaxArray[[ "MAX" ]]
> myMatrix[ inx , ]
>
> Hope this helps,
>
> Rui Barradas
> Em 31-07-2012 08:58, Rantony escreveu:
>> Hi,
>>
>> Here i have a Matrix
>>
>> MyMatrix <-
>>
>> Name Age
>> --------- -------
>> ANTONY 27
>> IMRAN 30
>> RAJ 22
>> NAHAS 32
>> GEO 42
>>
>> and here i have an array with Minimum and Maximum values.
>> MinMaxArray <- data.frame(MIN = 25,MAX=35)
>> MIN MAX
>> ------ --------
>> 25 35
>> ------------------------------------------------------
>> Now what is, i need to get a matrix by removing the rows which is
>> NOT coming
>> the "Age"-column in between the MIN and MAX value. Is it possible
>> to avoid
>> "for-loop", bcz its a huge matrix.
>>
>> so, final matrix looks like this,
>>
>> Name Age
>> --------- -------
>> ANTONY 27
>> IMRAN 30
>> NAHAS 32
>>
>>
>> - Thanks in advance,
>> Antony.
>>
>
--
David Winsemius, MD
Alameda, CA
More information about the R-help
mailing list