在R中搜索和替换数据帧的行

时间:2017-11-16 14:08:17

标签: r

  search <- function(x,max_hp){
  count <- 1
  result <- matrix(NA, nrow =nrow(x), ncol = ncol(x))
  for(i in 1:nrow(x)){
    temp_row <- x[i,]
    if(temp_row[4] < max_hp){
      result[count,] <- temp_row
      count <- count + 1
    }
  }
  return(result)
}

我想搜索R中mtcars数据框的行hp > 240  使用for循环(迭代数据框的每一行)然后,只返回匹配的那一行。但是,我的代码不起作用。我想将每个匹配的行存储在一个空矩阵中。

1 个答案:

答案 0 :(得分:1)

我的评论太少,但我有几点要分享。首先,我同意@OttoKässi或@seeellayewhy。我想补充一点,如果你没有在mtcars $ hp中保留你的结果中的任何NA,你需要使用

result <- mtcars[which(mtcars$hp > 240),]

关于替换行,我只需按照上面的命令

result <- rbind(result,newrows)

如果newrows中列的任何属性与结果中的属性不同,R将会抱怨,特别是如果您的任何列是因子数据类型,并且定义的级别有任何差异。