[R] remove rows of a matrix by part of its row name

Ahmed Serag Ahmed@er@g777 @end|ng |rom hotm@||@com
Tue May 22 14:22:53 CEST 2018


Thanks a lot. The code works great.

Regards

Ahmed

**********************

Ahmed Serag

Analytical Chemistry Department

Faculty of Pharmacy

Al-Azhar University

Cairo

Egypt


________________________________
From: Rui Barradas <ruipbarradas using sapo.pt>
Sent: Tuesday, May 22, 2018 2:16 PM
To: Ahmed Serag; R-help using r-project.org
Subject: Re: [R] remove rows of a matrix by part of its row name

Hello,

Please always cc the list.

As for the question, yes, it does. If you want to remove just the ones
with exactly 73.1 use the pattern

grep("^73\\.1$", etc)

Explanation:

Beginning of string: ^
End of string: $
Escape special characters: \\ (needed because the period is a special
character.)

Hope this helps,

Rui Barradas

On 5/22/2018 12:50 PM, Ahmed Serag wrote:
> Thank you Mr. Barradas. The code works great. Unfortunately I have also
> some labeles with
>
>
> 173.1
>
> 273.1
>
>
> the grep script remove them also ?
>
> Any ideas Plz, Thanks again
>
>
> ************************
>
> *Ahmed Serag*
>
> /Analytical Chemistry Department/
>
> /Faculty of Pharmacy/
>
> /Al-Azhar University/
>
> /Cairo/
>
> /Egypt/
>
>
>
> ------------------------------------------------------------------------
> *From:* Rui Barradas <ruipbarradas using sapo.pt>
> *Sent:* Tuesday, May 22, 2018 1:34 PM
> *To:* Ahmed Serag; r-help using r-project.org
> *Subject:* Re: [R] remove rows of a matrix by part of its row name
> Hello,
>
> Use grep to get the row indices and then subset with a *negative* index
> to remove those rows.
>
> rn <- scan(what = character(), text = "
> 70/556
> 71.1/280
> 72.1/556
> 72.1/343
> 73.1/390
> 73.1/556
> ")
>
> mat <- matrix(rnorm(6*6), nrow = 6)
> row.names(mat) <- rn
>
> inx <- grep("73\\.", row.names(mat))
>
> new_mat <- mat[-inx, ]
> new_mat
>
>
> Hope this helps,
>
> Rui Barradas
>
> On 5/22/2018 11:48 AM, Ahmed Serag wrote:
>> Dear R-experts,
>>
>>
>> How can I remove a certain feature or observation by a part of its name. To be clear, I have a matrix with 766 observations as a rows. The row names are like this
>>
>> 70/556
>> 71.1/280
>> 72.1/556
>> 72.1/343
>> 73.1/390
>> 73.1/556
>> Now I would like to remove all the rows that contain the text 73.1
>>
>> Any ideas or suggestion please ?
>>
>>
>> Regards
>>
>>
>>
>>
>> **********************
>>
>> Ahmed Serag
>>
>> Analytical Chemistry Department
>>
>> Faculty of Pharmacy
>>
>> Al-Azhar University
>>
>> Cairo
>>
>> Egypt
>>
>>        [[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

thz.ch/mailman/listinfo/r-help>
stat.ethz.ch
The main R mailing list, for announcements about the development of R and the availability of new code, questions and answers about problems and solutions using R, enhancements and patches to the source code and documentation of R, comparison and compatibility with S and S-plus, and for the posting of nice examples and benchmarks.




> <https://stat.ethz.ch/mailman/listinfo/r-help>
> stat.ethz.ch
> The main R mailing list, for announcements about the development of R
> and the availability of new code, questions and answers about problems
> and solutions using R, enhancements and patches to the source code and
> documentation of R, comparison and compatibility with S and S-plus, and
> for the posting of nice examples and benchmarks.
>
>
>
>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>

	[[alternative HTML version deleted]]




More information about the R-help mailing list