r语言 - 替换的行数少于数据 - 如何解决此错误



数据的截断版本

 truncate1 <- function(x) { 
 qs <- quantile(x, c(.01, 0.99)) 
 trimx <- x[x > qs[1] & x < qs[2]] 
 return(trimx)
  }

数据的截断版本

TRU_BANK <- as.data.frame(BANK)

自变量的胜利化以控制异常值

 TRU_BANK$TVAR_AVG <- truncate1(TRU_BANK$TVAR_AVG) 
 Error in `$<-.data.frame`(`*tmp*`, "TVAR_AVG", value = c(19.6, 35.2, 26.9,  : 
 replacement has 495 rows, data has 507

修改函数以子集数据框而不仅仅是字段;返回新的数据集。 可重现的东西:

df <- data.frame(y = c(1,2,3,4,5), z = c(1,2,3,4,5))

truncate1 <- function(df, x) { 
  qs <- quantile(df[ ,x], c(.01, 0.99)) 
  trimx <- df[ df[ ,x] > qs[1] & df[ ,x] < qs[2], ] 
  return(trimx)
}
##putting the quotes around the column name or using a column number is key
new.df <- truncate1(df, "y")

new.df 应该是

 new.df
  y z
2 2 2
3 3 3
4 4 4

相关内容

  • 没有找到相关文章

最新更新