Quoting Francesca PANCOTTO <f.panco...@unimore.it>:

Dear R contributors,

I have a problem in selecting in an efficient way, rows of a data frame according to a condition,
which is a part of a row name of the table.

The data frame is made of 64 rows and 2 columns, but the row names are very long but I need to select them according to a small part of it and perform calculations on the subsets.

This is the example:
                                                                                
        X                       Y
"Unique to strat " 0.0482 28.39 "Unique to crt.dummy " 0.0441 25.92 "Unique to gender " 0.0159 9.36 "Unique to age " 0.0839 49.37 "Unique to gg_right1 " 0.0019 1.10 "Unique to strat:crt.dummy " 0.0689 40.54 "Common to strat, and crt.dummy " -0.0392 -23.09 "Common to strat, and gender " -0.0031 -1.84 "Common to crt.dummy, and gender " 0.0038 2.21 "Common to strat, and age " 0.0072 4.21

X and Y are the two columns of variables, while “Unique to strat”, are the row names. I am interested to select for example those rows whose name contains “strat” only. It would be very easy if these names were simple, but they are not and involve also spaces. I tried with select matches from dplyr but works for column names but I did not find how to use it on row names, which are of course character values.

Thanks for any help you can provide.

----------------------------------
Francesca Pancotto, PhD


Use ?grep or ?grepl:

    df[grep("strat", row.names(df)), ]

(in which 'df' is your data frame)


--
Enrico Schumann
Lucerne, Switzerland
http://enricoschumann.net

______________________________________________
R-help@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.

Reply via email to