我有一些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
替换行开头的所有1
和NA
以及行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
是否有现有功能可以满足我的需求?如果没有,任何人都可以用简单的代码帮助我吗?