我想根据列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
答案 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.table
。 Name
以.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