R программирование - обрабатывать NA в файле как 0 - PullRequest
0 голосов
/ 09 декабря 2018

Действительно простой вопрос, на который я не смог Google / найти ответ.

У меня есть простой файл - "test.txt"

Gender arch1
M      99
F      97
M      NA

Я загружаюэто в набор результатов с использованием read.table - работает отлично.

attach(resultset)

Теперь я хочу _something_ , который даст мне

mean(arch1, [_SOMETHING_]) = 65.3 (and *_NOT_* 98) 

то есть не na.rm= T или аналогичный.По сути, я хочу рассматривать NA как 0 - и я не хочу делать что-то сложное, например, здесь с матрицами и фреймами данных.

Просто NA = 0 из файла.Конечно, я не могу быть первым человеком, который хотел этого?И я не хочу дискуссий о том, что NA и 0 не одно и то же.Я думаю, что вполне справедливо рассчитывать среднее значение даже по пропущенным студентам!

Ответы [ 4 ]

0 голосов
/ 25 декабря 2018

Ниже мое предложение о том, как реализовать решение, на которое я сейчас дал правильный ответ:

avg_without_NA = function(vec) 
{
  my_ans = sum(vec, na.rm = T)/length(vec)
  return(my_ans)
}

Итак, теперь все, что мне нужно сделать, это сделать простой вызов функции и мой кодинкапсулирован в!Проще повсюду и легче читать!

0 голосов
/ 09 декабря 2018

Как то так?

sum(arch1, na.rm = T)/length(arch1)
0 голосов
/ 09 декабря 2018

Вы можете заменить NA с нулями перед использованием mean:

mean(replace(arch1, is.na(arch1), 0))
# [1] 65.33333
0 голосов
/ 09 декабря 2018

вы можете заменить NA на ноль на resultset$arch1[is.na(resultset$arch1)]=0, а затем вычислить среднее значение arch1 столбца

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