是否有一个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