Есть ли способ заставить эту функцию вычислять SD и среднее значение? - PullRequest
2 голосов
/ 18 апреля 2020
setNames(apply(cats, 1, , na.rm = TRUE), df[[1]])) 

Я бы хотел, чтобы mean и sd выводились одной функцией.

Ответы [ 2 ]

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

Я не знаю, что должен делать cats в вашем примере. Поэтому я буду следовать заголовку вашего сообщения.

С data.table вы можете выполнять сложные вычисления с помощью lapply + .SD глаголов в одну строку:

library(data.table)
df = data.table(iris)
df[,lapply(.SD, function(x) return(c(mean(x, na.rm = TRUE), sd(x, na.rm = TRUE)))), .SDcols = colnames(df)[1]]
#  Sepal.Length
# 1:    5.8433333
# 2:    0.8280661

Вы может сделать это для более чем одного столбца, если требуется

0 голосов
/ 18 апреля 2020

Вот вариант с dplyr

library(dplyr)
iris %>%
  summarise_at(vars(Sepal.Length), list(mean = ~mean(., na.rm = TRUE), 
         sd = ~sd(., na.rm = TRUE)))
#      mean        sd
#1 5.843333 0.8280661   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...