相关疑难解决方法(0)

矩阵%in%matrix

假设我有两个矩阵,每个矩阵有两列和不同的行数.我想检查并查看另一个矩阵中哪一对矩阵.如果这些是一维的,我通常只是a %in% x为了得到我的结果.match似乎只对矢量有效.

> a
      [,1] [,2]
[1,]    1    2
[2,]    4    9
[3,]    1    6
[4,]    7    7
> x
     [,1] [,2]
[1,]    1    6
[2,]    2    7
[3,]    3    8
[4,]    4    9
[5,]    5   10
Run Code Online (Sandbox Code Playgroud)

我希望结果如此c(FALSE,TRUE,TRUE,FALSE).

r

14
推荐指数
4
解决办法
923
查看次数

在%运算符中泛化R%以匹配元组

前几天我花了一些时间寻找一种方法来检查行向量是否包含在R中的某些行向量中.基本上,我想概括%in%运算符以匹配元组而不是向量中的每个条目.例如,我想:

row.vec = c("A", 3)
row.vec
# [1] "A" "3"

data.set = rbind(c("A",1),c("B",3),c("C",2))
data.set
#      [,1] [,2]
# [1,] "A"  "1" 
# [2,] "B"  "3" 
# [3,] "C"  "2" 

row.vec %tuple.in% data.set
# [1] FALSE
Run Code Online (Sandbox Code Playgroud)

对于我的伪造运算符,%tuple.in%因为行向量c("A",3)不是data.set中的行向量.使用%in%运算符给出:

row.vec %in% data.set
# [1] TRUE TRUE
Run Code Online (Sandbox Code Playgroud)

因为"A"和3都在data.set,这不是我想要的.

我有两个问题.首先,对此有什么好的解决方案吗?

其次,由于我找不到它们(即使它们存在),我试着编写自己的函数来完成它.它适用于行向量的输入矩阵,但我想知道是否有任何专家提出了改进:

is.tuple.in <- function(matrix1, matrix2){

     # Apply rbind() so that matrix1 has columns even if it is a row vector.
     matrix1 = rbind(matrix1)

     if(ncol(matrix1) != …
Run Code Online (Sandbox Code Playgroud)

tuples r operators match

8
推荐指数
1
解决办法
1291
查看次数

标签 统计

r ×2

match ×1

operators ×1

tuples ×1