是否有一个R函数来查找包含特定模式的行索引?

是否有一个R函数来查找包含特定模式的行索引?,r,R,目前,我正在处理显示一系列活动的数据,我想从这些序列中提取遵循特定模式的行 一些示例序列: set.seed(12345) m <- matrix(sample(1:10, 800, replace=T), ncol=8) m[sample(1:100, 20, replace=T), 8] <- NA #sequences have variable lengths head(m) [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [1,]

目前,我正在处理显示一系列活动的数据,我想从这些序列中提取遵循特定模式的行

一些示例序列:

set.seed(12345)
m <- matrix(sample(1:10, 800, replace=T), ncol=8)
m[sample(1:100, 20, replace=T), 8] <- NA #sequences have variable lengths
head(m)

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8]
[1,]    4    2    3    1    1    2    4    4
[2,]    5    4    5    3    3    4    1    2
[3,]    4    5    1    4    2    5    3    3
[4,]    5    4    3    4    2    5    4   NA
[5,]    3    3    4    3    3    4    2    1
[6,]    1    5    4    4    1    5    5    4
set.seed(12345)

我们可以从创建一个向量开始,该向量将矩阵的每一行折叠成一个字符串(在本例中,由空格分隔)。然后我们可以很容易地
grep
it

mm<-apply(m,1,paste,collapse=" ")
grep("1 2 3", mm)
integer(0)
grep("1 [245] 3", mm)
[1] 14 83
mm2、4或5->3


请注意,
grep
将为符合模式的行提供索引。或者,
grepl
将为您提供一个长度与
m
相同的逻辑向量,其中TRUE表示匹配。

grepl(15.8,mtcars$mpg)您在示例中匹配的模式是什么?经典正则表达式或
grepl
用例-检查帮助-可能是连接的帮助列(即
粘贴
)将这些值合并到单个列中也会使grepping更容易
mm<-apply(m,1,paste,collapse=" ")
grep("1 2 3", mm)
integer(0)
grep("1 [245] 3", mm)
[1] 14 83