r - 在多列上使用函数
问题描述
我创建了这个函数来计算平均值、中位数和 SD:
f1<- function(x) c(mean= round(mean(x),2), median= round(median(x),2), sd= round(sd(x),2))
我想将它用于多个列(列名:域 1、域 2、域 3、总计)
我想知道如何使用该函数,您会推荐一种比使用函数来表示均值、中位数和标准差的更好方法吗?
解决方案
您可以使用sapply
将f1
函数应用于多个列。
f1<- function(x) c(mean= round(mean(x),2), median= round(median(x),2), sd= round(sd(x),2))
cols <- c('mpg', 'cyl')
sapply(mtcars[cols], f1)
# mpg cyl
#mean 20.09 6.19
#median 19.20 6.00
#sd 6.03 1.79
使用dplyr
:
mtcars %>%
summarise(across(c(mpg, cyl), list(mean = mean, sd = sd, median = median)))
# mpg_mean mpg_sd mpg_median cyl_mean cyl_sd cyl_median
#1 20.09062 6.026948 19.2 6.1875 1.785922 6
推荐阅读
- azure - 如何使用 Azure 管道将文件上传到 FTP 服务器?
- c++ - 为什么在十进制到二进制代码中,当我们输入 63 以上的数字时它不能正常工作?
- python - 使用文件夹中的文件的 Python 奇怪问题
- sql - Oracle 为什么存在查询返回此结果
- chart.js - 如何在chart.js中调整特定网格线的大小
- php - Xdebug PhpStorm:以 exec("php index.php") 开头的调试脚本
- sql - 在 where 子句中使用日期检查执行查询时出错
- java - 我在哪里可以下载 openjdk10 源码包(openjdk-10*_src.tar.gz....)?
- java - @Component 扫描spring bean
- sqlite - Tkinter python 3.7 AttributeError:'Button'对象没有属性'get'