首页 > 解决方案 > 如何在r中运行代码向量和矩阵?

问题描述

我需要编写一个包含 2 个 excel 文件的代码。其中之一是

proteins
  <chr>   
1 A       
2 C       
3 D       
4 F

另一个是蛋白质的相互作用。

int
      int1 int2
 [1,] "A"  "B" 
 [2,] "B"  "A" 
 [3,] "C"  "A" 
 [4,] "C"  "B" 
 [5,] "B"  "C" 
 [6,] "D"  "B" 
 [7,] "B"  "E" 
 [8,] "D"  "F" 
 [9,] "A"  "F" 
[10,] "D"  "A"

在输出中,我只想要彼此的交互。因为在交互文件中还包括 B 和 E 蛋白。我只想看“C”“A”,“D”“F”,“A”“F”,“D”A”。

我尝试了循环。编码;

for(row in 1:nrow(int)){
    for(col in 1:ncol(int)){
        for(i in 1:length(proteins)){
          if(proteins[1]== int[row, col]){
            print(int[row , col])
      }
    }
  }
}

它没有给出错误。它也没有运行代码。我不明白它的原因。我希望我清楚地解释了这个问题。请你帮助我好吗?

标签: r

解决方案


由于 R 是一种矢量化语言,因此您不需要所有这些循环。你可以跑

int[apply(int,1, function(x) all(x %in% proteins)),]

推荐阅读