r - 通过与 R 中的另一个数据帧进行比较,从一个数据帧中选择数据
问题描述
基本上我有两个数据集,一个是公司级别的,一个是行业级别的。
下面的值包含两个数据集,尽管顺序可能不同。行号也不同。
date <- c(1999,2000,2001...2019)
industry <- c("communication services", "utilities", "financials")
dffirm <- c(firmID, date, industry, beta, asset_ratios)
dfindustry <- c(industry, date, mean_beta, mean_asset_ratios)
我想做的是比较两个数据集与相应行业和年份之间的 beta 和资产比率,以便我可以根据某些标准创建公司投资组合,例如:
dffirm$beta < dfind$beta & dffirm$asset_ratio > dfindustry$mean_asset_ratio
解决方案
根据您的评论,我认为您正在寻找要比较的每个数据框的基本汇总统计信息。我认为使用tidyverse
包可能会有所帮助。
已编辑
install.packages("dplyr")
install.packages("magrittr")
library("magrittr")
library("dplyr")
#some sample datasets
firm_data <- data.frame("date" = c(rep(2009,4),rep(2010,4),rep(2011,4)),
"firm_beta" = rnorm(12))
industry_data <- data.frame("date" = c(rep(2009,4),rep(2010,4),rep(2011,4)),
"industry" = rep(c("industry1","indsutry2"),6),
"industry_beta" = rnorm(12))
#caculate mean for column "beta" in data frame 1
industry_data2 <- industry_data %>% group_by(date) %>%
summarise(industry_mean_beta = mean(industry_beta))
industry_data2
#caculate mean for column "beta" in data frame 2
firm_data2 <- firm_data %>% group_by(date) %>% summarise(firm_mean_beta = mean(firm_beta))
firm_data2
dc3 <- industry_data2 %>% left_join(firm_data2) %>%
mutate(beta_differ = case_when(
industry_mean_beta > firm_mean_beta ~ "industry > firm",
industry_mean_beta < firm_mean_beta ~ "industry > firm",
industry_mean_beta == firm_mean_beta ~ "industry > firm"
))
推荐阅读
- html - 在 Bootstrap 4 中创建一个带有正确对齐徽标的标题
- plugins - VS2017如何为Arduino开发?
- javascript - Chrome 上的 Javascript - 如何从 deviceorientationabsolute 事件中获取正确的标题值?
- android - 将图像分配给导航抽屉的标题
- javascript - 如何在安全网站上找到不可见的混合内容问题?
- php - PHP stdObject - 动态分配的函数返回一个引用
- vim - Vim 绑定以在双花括号中将光标下的单词换行
- c++ - std::vector 在内存中是什么样的?
- java - 为什么 Any 的方法不是抽象的或原生的?
- python - pandas 在执行 groupby 后重置索引并保留选择性列