楼主: tylerma3223
3723 2

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

  • 0关注
  • 16粉丝

已卖:4976份资源

教授

3%

还不是VIP/贵宾

-

威望
1
论坛币
222362 个
通用积分
6.5552
学术水平
42 点
热心指数
72 点
信用等级
44 点
经验
19872 点
帖子
512
精华
0
在线时间
925 小时
注册时间
2013-1-28
最后登录
2023-11-29

楼主
tylerma3223 学生认证  发表于 2018-1-15 20:28:30 |AI写论文
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) 本附件包括:
  • da02.csv

最佳答案

cheetahfly 查看完整内容

我用tidyverse包+weighted.mean()实现,不知是不是你想要的: 结果如下: 注:我第二个变量的权重选错了,请你自己更正一下。
关键词:CAS R语言 Deposit ratio Total

沙发
cheetahfly 在职认证  发表于 2018-1-15 20:28:31
我用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()实现,不知是不是你想要的:
结果如下:
多谢您。
变量是哪个都无所谓,道理都一样,我试验一下,看看是否可行。

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

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