我是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,]匹配。任何帮助将不胜感激。
答案 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)
当你真正想做的就是选择行的子集时,你真的不应该将连续的行链接在一起。非常低效。