检索R中的循环输出

时间:2013-07-11 03:31:06

标签: r

我是R的新手,我正在处理循环。我有两个矩阵,它们是s1(包含NA值)& B.我正在尝试这个循环并且在检索输出时遇到问题。

m1<-function(s1,B)
 {
  for(i in 1:nrow(s1))
  { 
   if(is.na(s1[i,])==T) {mi<-rbind(mi,B[i,])}
  }
  print(mi)
 }
outB<-m1(s1,B)

我想有一个新的data.matrix由B [i,]的行绑定组成。 B [i,]应该与s1 [i,]匹配。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

是的,在R中这不是真正的方法。这将取代那个丑陋的循环:

m1<-function(s1,B)  # use vector indexing rather than a loop
 { mi <- B[ !is.na(s1),  ] # notice logical index and no "=="
  print(mi)
 }
outB<-m1(s1,B)

当你真正想做的就是选择行的子集时,你真的不应该将连续的行链接在一起。非常低效。