楼主: 嘟嘟菇
1302 0

[学习分享] 描述性统计函数by()和sapply()的区别 [推广有奖]

  • 1关注
  • 0粉丝

初中生

19%

还不是VIP/贵宾

-

威望
0
论坛币
10 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
589 点
帖子
5
精华
0
在线时间
17 小时
注册时间
2012-11-5
最后登录
2020-7-27

楼主
嘟嘟菇 发表于 2017-10-19 17:15:45 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
《R语言实战第二版》第七章的实例
(1)mystats<-function(x,na.omit=FALSE){                  if (na.omit)
                       x<-x[!is.na(x)]
                  m<-mean(x)
                  n<-length(x)
                  s<-sd(x)
                  skew<-sum((x-m)^3/s^3)/n
                  kurt<-sum((x-m)^4/s^4)/n-3
                  return(c(n=n,mean=m,stdev=s,skew=skew,kurtosis=kurt))
                 }
myvars<-c("mpg","hp","wt")
sapply(mtcars[myvars],mystats)
运行结果:
               mpg          hp          wt
n        32.000000  32.0000000 32.00000000
mean     20.090625 146.6875000  3.21725000
stdev     6.026948  68.5628685  0.97845744
skew      0.610655   0.7260237  0.42314646
kurtosis -0.372766  -0.1355511 -0.02271075
(2)

dstats<-function(x)sapply(x,mystats)  ------mystats是(1)中的自定义函数
myvars<-c("mpg","hp","wt")
by(mtcars[myvars],mtcars$am,dstats)

运行结果:
mtcars$am: 0
                 mpg           hp         wt
n        19.00000000  19.00000000 19.0000000
mean     17.14736842 160.26315789  3.7688947
stdev     3.83396639  53.90819573  0.7774001
skew      0.01395038  -0.01422519  0.9759294
kurtosis -0.80317826  -1.20969733  0.1415676
---------------------------------------------------------
mtcars$am: 1
                 mpg          hp         wt
n        13.00000000  13.0000000 13.0000000
mean     24.39230769 126.8461538  2.4110000
stdev     6.16650381  84.0623243  0.6169816
skew      0.05256118   1.3598859  0.2103128
kurtosis -1.45535200   0.5634635 -1.1737358

各位大神,为什么(2)中第三行代码中的dstats用mystats代替呢?求解!!!!!


二维码

扫码加我 拉你入群

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

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


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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 21:29