首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过比较nxm矩阵和nxc矩阵(其中c<=m)创建真/假矩阵

通过比较nxm矩阵和nxc矩阵(其中c<=m)创建真/假矩阵
EN

Stack Overflow用户
提问于 2017-08-04 03:54:40
回答 2查看 130关注 0票数 0

我在R中遇到了以下问题:

我有一个名为"H“的矩阵,它是通过以下方式获得的:

代码语言:javascript
复制
 v<-t(combn(x, 1))
 v<-cbind(v,matrix(0,nrow(v),2))
 y<-t(combn(x, 2))
 y<-cbind(y,matrix(0,nrow(y),1))
 z<-t(combn(x, 3)) 

 H<-rbind(v,y,z)  

它将是title中的"nxc“矩阵:

代码语言:javascript
复制
       [,1] [,2] [,3]
 [1,]    1    0    0
 [2,]    2    0    0
 [3,]    3    0    0
 [4,]    4    0    0
 [5,]    5    0    0
 [6,]    6    0    0
 [7,]    7    0    0
 [8,]    8    0    0
 [9,]    9    0    0
[10,]   10    0    0
[11,]    1    2    0
[12,]    1    3    0
[13,]    1    4    0

接下来,我有一个"nxm“矩阵,它是通过重复第一列(在本例中是1:10的序列) "n”次(基于H‘s行)创建的。

代码语言:javascript
复制
x = c(1:10)
c<-as.data.frame(t(x))
a<-as.data.frame(c[rep(seq_len(nrow(c)), each=nrow(H)),])

这将给出:

代码语言:javascript
复制
      V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1      1  2  3  4  5  6  7  8  9  10
1.1    1  2  3  4  5  6  7  8  9  10
1.2    1  2  3  4  5  6  7  8  9  10
1.3    1  2  3  4  5  6  7  8  9  10
1.4    1  2  3  4  5  6  7  8  9  10
1.5    1  2  3  4  5  6  7  8  9  10
1.6    1  2  3  4  5  6  7  8  9  10

现在,我想要得到的是一个数据框,它比较这两个数字,当"H“中的一个数字在"a”和"FALSE“列中时显示"TRUE”,而不是“FALSE”。就像这样:

代码语言:javascript
复制
      V1     V2     V3     V4     V5     V6     V7     V8     V9     V10
1     TRUE   FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE
1.1   FALSE  TRUE   FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE
.
.
.  
1.n   FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  FALSE  TRUE   TRUE   TRUE

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-08-04 07:42:02

我回来了:希望这能有所帮助:

代码语言:javascript
复制
t(mapply("%in%",data.frame(t(a)),data.frame(t(H))))

上面的代码比较了a行中H行中的值,并在a的值为H时给出了一个TRUE。如果这不起作用,请告诉我

票数 2
EN

Stack Overflow用户

发布于 2017-08-04 05:25:15

也许这会有帮助(b是想要的数据帧):

代码语言:javascript
复制
b <- data.frame()

for (j in 1:nrow(a)){
  common = intersect(H[j,],a[j,])
  for (i in a[j,])
  {
    if (i %in% common){
        b[j,i]<- T
    }
    else
    {
        b[j,i]<- F
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45493446

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档