Как заменить пробелы («») в определенных столбцах (в частности, «NAICSP» и «SOCP») значениями NA - PullRequest
1 голос
/ 22 февраля 2020

в RStudio. Не уверен, как заменить пробелы только из определенных столбцов - и на основе их имен. Перепробовал много версий

census_data[c("NAICSP","SOCP") == ""] <- NA

Ответы [ 2 ]

2 голосов
/ 22 февраля 2020

Вы можете попробовать использовать apply в режиме столбца для базовой опции R:

cols <- c("NAICSP","SOCP")
census_data[, cols] <- apply(census_data[, cols], 2, function(x) {
    ifelse(x == "", NA, x)
})
1 голос
/ 22 февраля 2020

Отказ от ответственности : В этом ответе используется 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

ПРИМЕЧАНИЕ :

Предупреждающее сообщение должно напоминать пользователям о закулисном принуждении к персонажу.

...