Есть ли строка кода, которую я могу добавить к функции, чтобы удалить все результаты, которые = 0 - PullRequest
0 голосов
/ 20 апреля 2020

в функции для среднего значения или медианы можно добавить строку кода, которая избавит от этих = 0

пример функции: df <- iris setNames(apply(sepal.length, 1, median, na.rm = TRUE), df[[1]])

1 Ответ

1 голос
/ 20 апреля 2020

Следующее вычислит медиану для всех ненулевых и ненулевых значений в каждой строке фрейма данных.

df <- iris 
apply(df, 1, FUN = function(x){
  values_to_calculate <- x[which(!x == 0)]
  return(median(values_to_calculate, na.rm = T))
})

Функция apply принимает три параметра, см. Документацию здесь: https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/apply

  • Matrix / Vector / Dataframe: в этом примере df содержащий набор данных iris
  • Margin: в этом примере значение margin равно 1, что означает, что apply будет проходить по каждой строке. Чтобы выполнить итерацию по каждому столбцу, измените 1 на 2 или для каждой ячейки измените функцию 1 на c (1,2)
  • , чтобы применить ее к полям: в этом случае мы создаем пользовательский функция и передача каждой строки в эту пользовательскую функцию под переменной х. Затем мы удалим все ненулевые значения из строки и, наконец, вернем медиану

Примечание. Как правило, я бы не рекомендовал удалять 0 из медианного вычисления, если только причина, по которой нули находятся в наборе данных в первое место хорошо известно

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