在R中选择/提取rowname的行基础

时间:2016-06-01 08:10:09

标签: r

我想根据列ids中的特定标识符从R中的数据中提取一些行。我的数据是这样的:

ids         A1     B1     C1    D1    E1 ...
asd.wd.01   12     23     27    32    76
qsd.yh.02   54     32     32    11    22
gsd.kj.01   22     21     67    88    22 
hnd.gd.02   22     88     42    41    93
sjd.td.01   52     31     72    19    31

我想要跟随输出:(行01例如。xxx.xx.01

ids         A1     B1     C1    D1    E1 ...
asd.wd.01   12     23     27    32    76
gsd.kj.01   22     21     67    88    22 
sjd.td.01   52     31     72    19    31

3 个答案:

答案 0 :(得分:1)

您可以使用字符串匹配。例如

Index <- grep("\\.01$", df$ids) ## Gives index of rows which contains .01
df <- df[Index, ]  ## subsets dataframe

答案 1 :(得分:0)

您可以使用grepl

提取行
df <- subset(df, grepl("\\.01$", df$ids)

答案 2 :(得分:-1)

使用来自%>%软件包的filter()(管道运营商)和dplyr以及来自%like%软件包的data.tableName.1结尾的摘录行。您可以使用您的数据并进行类似的替换。

> library(dplyr)
> library(data.table)
> df <- data.frame(Name=c("A.1","B.1","A.3","B.2","C.1"),A=1:5,B=5:9,C=10:14)
> df
  Name A B  C
1  A.1 1 5 10
2  B.1 2 6 11
3  A.3 3 7 12
4  B.2 4 8 13
5  C.1 5 9 14

> df %>% filter(Name %like% ".1")
  Name A B  C
1  A.1 1 5 10
2  B.1 2 6 11
3  C.1 5 9 14