【发布时间】:2019-03-16 06:43:59
【问题描述】:
我想计算特定日期与公司列表相关的投资。我有公司名单和投资日期。
这是我的数据-
参考日期
d1 <- as.Date(paste0("201001","01"), "%Y%m%d")
d2 <- as.Date(paste0("201201","01"), "%Y%m%d")
dat <- seq(d1,d2,by="month")
投资数据
> head(df)
company_name funding_round_type funding_round_code funded_at raised_amount_usd yearMonth
1 0-6.com venture A 2008-03-19 2000000 2008-03-01
2 004 Technologies venture 2014-07-24 NA 2014-03-01
3 01Games Technology undisclosed 2014-07-01 41250 2014-03-01
4 H2O.ai venture B 2015-11-09 20000000 2015-03-01
5 H2O.ai seed 2013-05-22 3000000 2013-03-01
6 H2O.ai venture 2013-01-03 1700000 2013-03-01
我想计算每个公司在
dat中的每个日期时筹集了多少资金。
result <- merge(dat, df$company_name) %>%
mutate(asOf = x,
companyName = as.character(y)) %>% select(-x, -y) %>%
mutate(raised = sum(df[df$company_name == companyName &
df$yearMonth < asOf,c("raised_amount_usd")]))
很遗憾,过滤器无法正常工作。如果我将其设置为特定的公司,它就可以工作。这有效,例如:sum(df[df$company_name == companyName & df$yearMonth < asOf,c("raised_amount_usd")])。
我想得到一个看起来像这样的结果 -
asOf companyName cumulative_raised
1 2010-01-01 0-6.com 0
2 2010-02-01 0-6.com 12000000
3 2010-03-01 0-6.com 12000000
4 2010-01-01 H2O.ai 0
5 2010-02-01 H2O.ai 5000000
6 2010-03-01 H2O.ai 9300000
如何让过滤器在 mutate 子句中工作?
【问题讨论】:
-
请描述问题而不是解决方案。这让人误解,你到底想做什么?见the X-Y problem。
filter可能被解释为引用filter函数。 -
当然,我更新了它。