如何用NA值替换某些列(特别是“ NAICSP”和“ SOCP”)中的空格(“”)

问题描述 投票:1回答:2

在RStudio中。不确定如何仅根据特定列的名称替换特定列中的空白。尝试过多个版本的

census_data[c("NAICSP","SOCP") == ""] <- NA
r na missing-data
2个回答
2
投票

对于基本的R选项,您可以尝试在列模式下使用apply

cols <- c("NAICSP","SOCP")
census_data[, cols] <- apply(census_data[, cols], 2, function(x) {
    ifelse(x == "", NA, x)
})

1
投票

免责声明:此答案使用了mde,这是我刚写的一个程序包。如果可以使用包,则可以使用recode_as_na中的mde并提供subset_cols向量,如下所示:

census_data<- data.frame(ID = c("A","B","B","A"),
                         NAICSP = c("",NA,"Yes","No"),
                          SOCP = c("","","",""))
 # install.packages("devtools")
 # devtools::install_github("Nelson-Gon/mde")
 mde::recode_as_na(census_data,subset_df=TRUE,
                   subset_cols = c("NAICSP","SOCP"),
                   value="")
  ID NAICSP SOCP
1  A   <NA>   NA
2  B   <NA>   NA
3  B    Yes   NA
4  A     No   NA
Warning message:
In recode_as_na.data.frame(census_data, subset_df = TRUE, subset_cols = c("NAICSP",  :
  Factor columns have been converted to character

NOTE

警告消息是为了提醒用户幕后强迫角色。

© www.soinside.com 2019 - 2024. All rights reserved.