R 基于向量删除行

R 基于向量删除行,r,vector,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]),] } 有人知道为什么它不起作用吗?你有没有其他的建议 提前感谢您的帮

给定一个矩阵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.

始终尝试发布可复制的示例,以便其他人能够看到您正在尝试做的事情。还要尽量做到非常精确,因为有时很难理解人们想做什么,就像你的情况一样

也许这可以帮助你解决问题:

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,]

我感谢你的帮助,但尽管这无法解决问题,但我所做的如下:

# 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),]

子数据是什么意思?它和矩阵m有什么关系?子数据$subject是什么?这是你想要的结果吗?从代码中,您没有递归或迭代地执行操作,a只是删除最后一个主题j的结果。