Код для фильтрации проблемных записей 0 и NA - PullRequest
0 голосов
/ 13 сентября 2018

Абсолютно новичок здесь, я полностью извиняюсь, если / когда в любой момент я звучу как полный идиот

Я работаю в RStudio.Я импортировал файл данных из Excel.В нем есть несколько столбцов с информацией о здоровье, таких как возраст, артериальное давление, ИМТ и пара других.Мне нужно удалить записи с нулями в нескольких столбцах (у вас не может быть 0 ИМТ или артериального давления) Мне также нужно удалить все записи с NA.

Я застрял на том, что делать.Я пробовал функцию na.omit, но после слов я пытаюсь сделать что-то вроде mean () median (), и оно дает мне сообщение «аргумент не числовой или логический: возвращение NA», что не имеет смысла.Я думал, что АН должны были быть удалены.

Пожалуйста, помогите.Мне нужна помощь в очистке этих данных.

Ответы [ 3 ]

0 голосов
/ 13 сентября 2018

Tidyverse решение может выглядеть следующим образом. Tidyverse - это набор пакетов, разработанный командой R Studio.

library(tidyverse)

data <- data %>%
  filter(BMI != 0, BloodPressure != 0, col != NA)
0 голосов
/ 13 сентября 2018

Прежде всего, вы должны убедиться, что интересующие вас столбцы numeric, а не character, поскольку прямой импорт из файлов Excel может привести к непредвиденным типам столбцов.Для этого используйте функцию class(data_name$column_name).

. Символьные переменные не могут быть обработаны с помощью mean() и median(), поэтому вам необходимо сначала преобразовать их в numeric, используя

data_name$column_name <- as.numeric(data_name$column_name)

После этого вы можете заменить нули на NA, используя ifelse функцию:

data_name$column_name <- ifelse(data_name$column_name == 0, NA, data_name$column_name)

Затем вы можете вычислить среднее значение и медиану обычным способом, используя аргумент na.rm, чтобы удалить пропущенные значения (NA):

mean_BMI <- mean(data_name$BMI, na.rm = TRUE)
0 голосов
/ 13 сентября 2018

Обычно не рекомендуется удалять NA, потому что это может быть NA для одного столбца, но не для другого, так что вы можете исключить неправильную вещь.

С помощью библиотеки статистики вы можете использовать complete.cases (df), чтобы удалить все NA.

Чтобы изменить 0 на NA, вы можете сделать:

df[ df == 0] <- NA

Также, если вы хотите игнорировать NA при выполнении вычислений, вы можете сделать

median(df$col,na.rm = TRUE)

Это удалит NA из расчетов, и вы не получите NA в качестве вывода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...