基于向量删除行

时间:2017-05-24 12:37:33

标签: r vector

给定矩阵(m), 我想从它中删除由变化的向量给出的主题, 我试图做一个循环,但它只删除最后一个输入:

m= matrix(1:4,10,3);

changing_vector = c(2,1) or c(1,4) # etc..

for(j in 1:length(changing_vector))
{
    a = subData[!(subData$subject== changing_vector [j]),]
}

有人知道它为什么不起作用?你有其他方法可以做到这一点吗?

先谢谢你的帮助,

-G。

2 个答案:

答案 0 :(得分:0)

始终尝试发布可重现的示例,其他人可以看到您要执行的操作。也要非常精确,因为有时很难理解人们想要做什么(如你的情况)。

也许这可以帮助你实现目标:

m <- matrix(1:5, 15, 5)       
vec <- c(x,y)

    for(i in 1:nrow(m)){
      z[i] <- any(m[i,] %in% vec)
    }

 m <-   m[!x,]

答案 1 :(得分:0)

我感谢你的帮助,但是尽管它没有解决问题,我在这里做了什么:

# removing subjects who did not reach a performance> 70 % (for ex.- easier to # understand this way

subjectsTOremove= which((performance<70)

vector_poz = c();
for(j in 1:length(subjectsTOremove))
{
  S_to_remove= subjectsTOremove[j]
  a = data[!(data$subject== S_to_remove),]

  aa = which(data$subid == subjectsTOremove[j])
  vector_poz = c(vector_poz,aa)
}

# then this subjects rows are transformed in NaN and the NaN removed
data[vector_poz,]=NaN # this tranf allows to check visually the data out
data= data[complete.cases(data),]