如何从R中的向量计算多个函数

How to calculate multiple functions from vector in R

我想以一种有效的方式从向量计算多个函数,但我不知道如何计算。 我尝试使用管道,但它只适用于第一个变量,添加 , 不起作用。

vec1 %>%
  sd(),
  mean()

我想我总是可以将其转换为数据框并使用汇总,但我宁愿不这样做。

谢谢,

你可以试试

library(dplyr)

x <- c(1:10)

func <- function(x){
  c(mean(x), sd(x))
}
x %>%
  func
[1] 5.50000 3.02765

Return 列表中的输出。

calculate_stats <- function(x) {
  list(mean = mean(x), sd = sd(x), sum = sum(x))
}
result <- calculate_stats(1:10)
result

#$mean
#[1] 5.5

#$sd
#[1] 3.02765

#$sum
#[1] 55

可以使用 $result 中提取单独的值。

result$mean
#[1] 5.5

result$sd
#[1] 3.02765
x <- 1:10

c(sum(x), mean(x), sd(x))
#> [1] 55.00000  5.50000  3.02765

library(magrittr)

x %>% 
  {c(sum(.), mean(.), sd(.))}
#> [1] 55.00000  5.50000  3.02765

x %>% 
  sapply(c(sum, mean, sd), rlang::exec, .)
#> [1] 55.00000  5.50000  3.02765

reprex package (v2.0.1)

于 2021-11-26 创建