R 如何在多个列表中替换_na
我需要在多个列表中将NA替换为FALSE。我可以用最基本的方法来做。这是我到目前为止所拥有的-R 如何在多个列表中替换_na,r,R,我需要在多个列表中将NA替换为FALSE。我可以用最基本的方法来做。这是我到目前为止所拥有的- mydataframe$POBA<-replace_na(mydataframe$POBA,FALSE) mydataframe$POBA2<-replace_na(mydataframe$POBA2,FALSE) mydataframe$POBA3<-replace_na(mydataframe$POBA3,FALSE) mydataframe$POBA我们可以在 library
mydataframe$POBA<-replace_na(mydataframe$POBA,FALSE)
mydataframe$POBA2<-replace_na(mydataframe$POBA2,FALSE)
mydataframe$POBA3<-replace_na(mydataframe$POBA3,FALSE)
mydataframe$POBA我们可以在
library(dplyr)
mydataframe <- mydataframe %>%
mutate_at(vars(starts_with("POBA)), replace_na, FALSE)
你可以使用apply族来实现这一点
lapply(mydataframe, replace_na, FALSE)
注意:这将改变所有列并返回一个列表对象。如果需要,可以使用as.data.frame()
将其轻松地再次转换为data.frame
mydataframe <- data.frame(POBA = c(TRUE,TRUE,NA),
POBA2 = c(TRUE, NA, TRUE),
POBA3 = c(NA, TRUE, TRUE))
lapply(mydataframe, tidyr::replace_na, FALSE)
# $POBA
# [1] TRUE TRUE FALSE
#
# $POBA2
# [1] TRUE FALSE TRUE
#
# $POBA3
# [1] FALSE TRUE TRUE
mydataframe是否有一种方法可以实现这一点,假设列表具有多种名称(即不仅仅以POBA开头)?@Chris2015您可以在变量中添加感兴趣的列,即vars(POBA1,POBA2,…)
或作为一个范围(vars(POBA1:POBA10)
)或作为indexI尝试的lappy(mydataframe,replace\na,FALSE)但出于某种原因,这并没有奏效。
mydataframe <- data.frame(POBA = c(TRUE,TRUE,NA),
POBA2 = c(TRUE, NA, TRUE),
POBA3 = c(NA, TRUE, TRUE))
lapply(mydataframe, tidyr::replace_na, FALSE)
# $POBA
# [1] TRUE TRUE FALSE
#
# $POBA2
# [1] TRUE FALSE TRUE
#
# $POBA3
# [1] FALSE TRUE TRUE