R 矩阵中有序向量的有效搜索
我有一个由有序向量行组成的矩阵:R 矩阵中有序向量的有效搜索,r,matrix,vector,R,Matrix,Vector,我有一个由有序向量行组成的矩阵: v1 v2 v3 v4 v5 v6 v7 v8 v9 .... v45 v46 v47 v48 1 2 2 2 2 3 NA 3 3 .... 4 4 NA NA 3 3 4 4 4 NA NA NA NA .... 5 NA NA NA 4 4 4 5 5 5 5 5 5 .... NA NA NA NA ... 我想在R中找到一种有效的方法,使用R通过矩阵用有序向量(3,4)(即a
v1 v2 v3 v4 v5 v6 v7 v8 v9 .... v45 v46 v47 v48
1 2 2 2 2 3 NA 3 3 .... 4 4 NA NA
3 3 4 4 4 NA NA NA NA .... 5 NA NA NA
4 4 4 5 5 5 5 5 5 .... NA NA NA NA
...
我想在R中找到一种有效的方法,使用R通过矩阵用有序向量(3,4)(即a 3在a 4之前)对记录进行子集
1 2 2 2 2 3 NA 3 3 .... 4 4 NA NA
3 3 4 4 4 NA NA NA NA .... 5 NA NA NA
会议将分组表决。如果我子集了一个向量(1,2,3)(即2之前的1,然后是3),我将返回此行:
1 2 2 2 2 3 NA 3 3 .... 4 4 NA NA
也许你想要这个
set.seed(1)
data <- matrix(sample(1:10, 100, replace=TRUE), ncol=5)
searchfor <- c(1,2,3)
data[apply(data, 1, function(x) all(searchfor %in% x)),]
另一个载体
searchfor <- c(7,8,9)
data[apply(data, 1, function(x) all(searchfor %in% x)),]
资料
不是100%确定你在问什么,但是
yourMatrix[2:3,]
?你也可以定义向量v你所说的“有序向量(3,4)”是什么意思?很抱歉不清楚:我想找到所有在4之前有3,在2和3之前有1的行。可能在这些值之间会缺少一些值,因此我需要一种健壮的方法来选择所有此类情况。例如,我的第一个示例(3,4)也应该能够提取一行,例如3 NA NA 4。当搜索7/8/9
好的点时,这会拾取7/9/8
,但OP的数据是有序向量行
。只要我正确地解释OP的目标,它就应该工作…(也许)哈哈,坏了的时钟等等
searchfor <- c(7,8,9)
data[apply(data, 1, function(x) all(searchfor %in% x)),]
[,1] [,2] [,3] [,4] [,5]
[1,] 7 9 8 1 3
[2,] 5 7 1 9 8
[3,] 4 8 7 8 9
[,1] [,2] [,3] [,4] [,5]
[1,] 3 10 9 10 5
[2,] 4 3 7 3 8
[3,] 6 7 8 5 4
[4,] 10 2 6 4 4
[5,] 3 3 6 7 8
[6,] 9 4 8 3 3
[7,] 10 1 1 5 8
[8,] 7 4 5 8 2
[9,] 7 9 8 1 3
[10,] 1 4 7 9 2
[11,] 3 5 5 4 3
[12,] 2 6 9 9 1
[13,] 7 5 5 4 7
[14,] 4 2 3 4 9
[15,] 8 9 1 5 8
[16,] 5 7 1 9 8
[17,] 8 8 4 9 5
[18,] 10 2 6 4 5
[19,] 4 8 7 8 9
[20,] 8 5 5 10 7