R (Studio) Импорт xlsx / csv и установка NA / отсутствует на основе столбцов - PullRequest
0 голосов
/ 30 ноября 2018

Вероятно, это быстрый вопрос, на который я просто не нашел правильных ключевых слов, чтобы получить ответ.

Я использую R studio и импортирую CSV, используя readr (или xlsx с readxl) большого набора эпидемиологических данных (> 40 тыс. строк,> 200 переменных), который был предоставлен мне.

library (readr)
DF <- read_csv("com16_NA.csv", na = "999")
## OR ## 
library(readxl)
DF <- read_excel("com16_NA.xlsx", na = "999")

Я пытаюсь установить недостающие значения при импорте, однако создатели установили недостающие заполнители как 99 для некоторых переменных, 999 для других (где 99 - допустимый параметр, например, вес), и снова9999 для других (где 999 возможно).

Есть ли способ импорта, чтобы установить пропущенные значения для каждого столбца?Прямо сейчас я вижу только, как установить одно значение как отсутствующее для всего набора данных (согласно приведенному выше коду).

Или лучше всего конвертировать все отсутствующие заполнители в NA вэлектронную таблицу перед импортом?

Спасибо

Ответы [ 2 ]

0 голосов
/ 30 ноября 2018

Я бы дал понять создателям, что это плохая практика - иметь пропущенные коды значений, которые применяются к некоторым столбцам, но не к другим!

В этом случае вы можете использовать функцию replace_with_na() из пакета naniar:

library(readr)
library(naniar)

DF <- read_csv("com16_NA.csv") %>%
  replace_with_na(replace = list(x = 99, y = 999))

, где x - имя столбца с отсутствующими значениями, установленными как 99 и y с 999,

0 голосов
/ 30 ноября 2018

И read_csv, и read_excel принимают символьный вектор для аргумента na, поэтому вы можете ввести:

DF <- read_csv("com16_NA.csv", na = c('', 'NA', '999'))

или включить любое другое значение, которое вы хотите принять NA.Аргумент na по умолчанию - na = c('', 'NA') для read_csv и '' для read_excel

...