作为培训,我试图在这个db ( https://studysites.uk.sagepub.com/dsur/study/DSUR%20Data%20Files/Chapter%205/DownloadFestival(No%20Outlier).dat )上复制一个数据转换
dlf$day2<-as.numeric(dlf$day2)
dlf$recday2b<- 1/(dlf$day2 + 1)
dlf$recday2b[is.na(dlf$recday2b)] <-0
使用ifelse
,但我无法使ifelse
用0替换NA值。
我试过这些都没成功:
dlf$recday2b<-ifelse(is.na(dlf$day2), replace(dlf$day2, NA, 0), 1/(dlf$day2 + 1))
dlf$recday2b<-ifelse(dlf$day2!="", 1/(dlf$day2 + 1), dlf$day2==0)
发布于 2022-04-15 14:59:08
如果我理解正确,那么创建新变量recday2b
没有问题,但是您只想在recday2b为NA到0时进行更改。
如果你想试试
dlf$recday2b <-ifelse(is.na(dlf$recday2b), 0, dlf$recday2b)
dlf$recday2b <- ifelse(is.na(dlf$day2), 0, dlf$recday2b) #same result
否则,您还可以使用replace_na()
函数作为参数,该函数以数据数据或向量为参数。
https://stackoverflow.com/questions/71885204
复制相似问题