根据R中Row的位置,将NA替换为1或0

时间:2012-11-19 17:45:48

标签: r replace na

我有一些R数据框,其中包含二进制数据(0,1),以表示对特定分量表上的项目的错误和正确的响应。未向参与者询问所有问题,并NA表示此缺失数据。年龄较大的参与者从较晚的项目开始,并且NA对于未询问的早期项目。此外,大多数参与者未完成评估,导致行末有许多NA s。示例行如下:

Row 1 = NA, NA, NA, 1, 1, 0 , 1, 0, 0, 0, NA, NA Row 2 = 1, 1, 0, 0, 0, NA, NA, NA, NA, NA, NA, NA, NA

我想用NA替换行开头的所有1NA以及行0的{​​{1}} s {{ 1}}。

所以上面就是这样 Row 1 = 1,1, 1, 1, 1, 0 , 1, 0, 0, 0, 0,0 Row 2 = 1, 1, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0

我尝试过使用以下功能:

datComp <- function (x){
  xmin <- min(which(!is.na(x)))
  xmax <- max(which(!is.na(x)))
  if (xmin >1){ 
  x[1:xmin-1] <- 1} 
  x[(xmax+1):length(x)] <- 0
  return(x)
  }

但是对于某些数据框会出现此错误:

Error in data.frame(`1` = c(1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0, 0,  : 
  arguments imply differing number of rows: 36, 37

是否有现有功能可以满足我的需求?如果没有,任何人都可以用简单的代码帮助我吗?

0 个答案:

没有答案