楼主: 千车麦穗
3983 7

[学习分享] R之求均值及标准差 [推广有奖]

  • 5关注
  • 0粉丝

已卖:1份资源

博士生

0%

还不是VIP/贵宾

-

威望
0
论坛币
89 个
通用积分
6.7270
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1864 点
帖子
84
精华
0
在线时间
292 小时
注册时间
2019-4-22
最后登录
2025-10-22

楼主
千车麦穗 发表于 2020-3-18 20:49:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
各位老师,还有一个问题,再用tapply及aggravate分别求某一列均值及标准差的时候,为什么转为数据框后,两个函数得到的结果要么是3行1列,要么是3行2列,怎么弄成3行3的呢,求各位老师指点…谢谢
123.jpg
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝


沙发
caozhaowen 在职认证  发表于 2020-3-18 22:49:00
tapply和aggregate的确很麻烦。不如这样:
  1. okx <- iris %>% group_by(Species) %>%
  2.   dplyr::summarise(mean=mean(Sepal.Length),sd=sd(Sepal.Length))
复制代码
  1. > okx
  2. # A tibble: 3 x 3
  3. # Species     mean    sd
  4.   <fct>      <dbl> <dbl>
  5. 1 setosa      5.01 0.352
  6. 2 versicolor  5.94 0.516
  7. 3 virginica   6.59 0.636
复制代码

藤椅
rosenbloog 发表于 2020-3-18 22:52:46
这是由tapply和aggregate两个函数的输出结果决定的。与其去拆分它们的结果,不如在计算过程中定义两列,而不是用each函数来套装。

library(plyr)   #方法一
ok = ddply(iris,~Species,summarise,mean=mean(Sepal.Length),sd=sd(Sepal.Length))

# detach("package:plyr", unload = TRUE)
library(dplyr)  #方法二
ok = iris %>%
  group_by(Species) %>%
  summarise(mean=mean(Sepal.Length), sd=sd(Sepal.Length))

板凳
千车麦穗 发表于 2020-3-18 22:53:07
caozhaowen 发表于 2020-3-18 22:49
tapply和aggregate的确很麻烦。不如这样:
嗯嗯,我一直都是用的group_by衔接summarize函数,但是感觉用了R好久了,想尝试下新的写法,结果就碰到问题了,如果这俩函数那么麻烦,那以后就不用它俩了,哈哈

报纸
maths_hjxk 发表于 2020-3-18 22:56:42
可以使用plyr::ddply

地板
千车麦穗 发表于 2020-3-18 22:58:39
rosenbloog 发表于 2020-3-18 22:52
这是由tapply和aggregate两个函数的输出结果决定的。与其去拆分它们的结果,不如在计算过程中定义两列,而不 ...
谢谢,想再问你一句,tapply和aggregate函数一般什么时候用呢,它俩的长处是什么呢?

7
maths_hjxk 发表于 2020-3-18 23:01:11
tapply用于向量,aggregate用于数据框,用于仅返回单个结果的,若两个结果会被整合成一个矩阵列

8
三重虫 发表于 2020-3-18 23:25:00
caozhaowen 发表于 2020-3-18 22:49
tapply和aggregate的确很麻烦。不如这样:

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-15 18:45