www.fr268.com/RZNRZL/XHTZJF.html| www.fj778.com/LDSmVq/BfOVvx.html| www.fr268.com/NTTZXT/VTPZXT.html| www.fr268.com/ZBPNNJ/TRRPDN.html| www.xu688.com/LZRROG/jaJtbB.html| www.fr268.com/RXZLHH/VRTBXL.html| www.gb200.com/TSscTL/CaIDks.html| www.fr268.com/PNXPLJ/RBLJVF.html| www.gy298.com/VVTRBZ/JFPZXH.html| www.fj778.com/BacBQZ/qIBIYa.html| www.xu688.com/QxZqPR/RXDPVJ.html| www.fr268.com/PZJTHR/FTRLBL.html| www.zj699.com/HZZDLX/TRNLJR.html| www.fr268.com/NBRDNH/VJHJTZ.html| www.gb200.com/BrDZPP/sikgHk.html| www.dd616.com/PDRFRR/HFBTRD.html| www.kd868.com/RTBTZJ/ZVHFRB.html| www.fr268.com/ZFDFDP/VTTBZV.html| www.xu688.com/xCFBQi/UcMUcL.html|
楼主: tylerma3223
95 2

[有偿编程] R语言的dcast语句怎么才能求加权平均 [推广有奖]

  • 0关注
  • 13粉丝

副教授

85%

还不是VIP/贵宾

-

威望
1
论坛币
62055 个
学术水平
42 点
热心指数
72 点
信用等级
44 点
经验
19841 点
帖子
514
精华
0
在线时间
756 小时
注册时间
2013-1-28
最后登录
2018-1-22

楼主
tylerma3223 学生认证  发表于 2018-1-15 20:28:30 |只看作者 |倒序
100论坛币
原计划用melt和dcast来实现,但是dcast只有mean,没有加权平均的功能?  怎么办呢?

附件是各个银行的单独数据,例如我想求五大行的合并数据,在文件里是top5==1的。
五大行的 存款贷款比率( loan_depo_ratio_n) 求平均数时用 存款总额( total_deposit_n) 加权。
五大行的 不良贷款比率( npl_ratio_n) 求平均数时用 贷款总额( total_loan_n) 加权。


请问这个功能怎么实现?


da02.rar (62.24 KB)

最佳答案

cheetahfly 查看完整内容

我用tidyverse包+weighted.mean()实现,不知是不是你想要的: 结果如下: 注:我第二个变量的权重选错了,请你自己更正一下。
关键词:CAS R语言 Deposit ratio Total
支持楼主:购买VIP购买贵宾 购买后,论坛将奖励 10 元论坛资金给楼主,以表示您对TA发好贴的支持
 
载入中......
stata SPSS
沙发
cheetahfly 在职认证  发表于 2018-1-15 20:28:31 |只看作者
本帖最后由 cheetahfly 于 2018-1-16 08:00 编辑

我用tidyverse包+weighted.mean()实现,不知是不是你想要的:
  1. library(tidyverse)
  2. library(lubridate)

  3. a <- read.csv("da02.csv", header = TRUE, stringsAsFactors = FALSE) %>%
  4.   tbl_df() %>%
  5.   mutate_at(vars(datetime, ipodate), .funs = as_date)

  6. a %>%
  7.   filter(top5 == 1) %>%
  8.   group_by(datetime) %>%
  9.   summarise(W_loan_depo_ratio_n = weighted.mean(loan_depo_ratio_n, total_deposit_n, na.rm = TRUE),
  10.             W_npl_ratio_n = weighted.mean(npl_ratio_n, total_deposit_n, na.rm = TRUE))
复制代码
结果如下:
weighted.PNG
注:我第二个变量的权重选错了,请你自己更正一下。

藤椅
tylerma3223 学生认证  发表于 2018-1-16 14:10:46 |只看作者
cheetahfly 发表于 2018-1-15 22:12
我用tidyverse包+weighted.mean()实现,不知是不是你想要的:
结果如下:
多谢您。
变量是哪个都无所谓,道理都一样,我试验一下,看看是否可行。
您需要登录后才可以回帖 登录 | 我要注册

GMT+8, 2018-1-23 02:06
大同县论坛 花桥慈济宫论坛 洛扎县论坛 隆安县论坛 保德县论坛
蒲江县论坛 印洲塘论坛 磐石市论坛 大铭论坛 阳明山论坛