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