Использование функции карты вместо для l oop в R - PullRequest
0 голосов
/ 11 марта 2020

Извиняюсь, если это глупый вопрос - я совсем новичок в R и пытаюсь научить себя. Я пытался переписать следующий код, используя функцию карты вместо для l oop.

  columnmean <- function(y){
  nc <- ncol(y)
  means <- numeric(nc)
  for(i in 1:nc){
    means[i] <- mean(y[, i])
  }
  means
}

columnmean(mtcars)

Мой код, который использует распечатку карты, означает, но он также добавляет имена столбцов. Как правильно использовать карту, чтобы избежать этого? Я должен использовать imap или map2? Спасибо!

columnmean1 <- function(y){
  nc <- ncol(y)
  means <- numeric(nc)
  map(y, function (y) means <- mean(y) )
}

columnmean1(mtcars)

1 Ответ

1 голос
/ 11 марта 2020

Вы можете использовать map_dbl:

columnmean_map <- function(y){
   purrr::map_dbl(y, mean)
}

Вы также можете использовать summarise_all

columnmean_summarise <- function(y){
   dplyr::summarise_all(y, mean)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...