问:R for-loop和小插曲

时间:2019-03-19 17:21:29

标签: r dplyr

我在R中有一个小标题数据集。小标题Daily.log有13个变量和3'924'849个观测值。该小标题包含从2013-12-27到2019-01-31的加密资产数据。目的是弄清楚在2015年1月1日至2018年12月31日之间我将投资哪些加密货币资产。

Tibble的变量:

名称;日期;兰克诺打开;高;低;关;体积;市场; close_ratio;传播;值;返回。名称= chr,日期=日期,其余全部为数字。

变量名按字母顺序排序:

意思是Daily.log [1:1861,]代表第一项资产(2013-12-27至2019-01-31),而Daily.log [1862:3722,]代表第二项资产(2013-12-27直到2019-01-31)等...

有关投资的限制如下:

加密资产必须在过去365天进行交易。从满足此要求的那些中选择过去183天中平均交易量最高的20个。

对于2015年1月1日,我这样做如下:

k     <- 20
names <- Daily.log %>% 
  filter(date<="2014-12-31") %>% 
  filter(!is.na(return)) %>% 
  summarise(nonNAs = sum(!is.na(return))) %>% 
  filter(nonNAs>=365) %>% 
  arrange(desc(nonNAs)) %>% 
  .$Name
names.20150101 <- Daily.log %>% 
  filter(date>="2014-07-02", date<="2014-12-31") %>% 
  filter(name %in% names) %>% 
  group_by(name) %>% 
  summarise(volume=mean(volume,na.rm=TRUE)) %>% 
  arrange(desc(volume)) %>% 
  slice(1:k) %>% 
  .$name

但是,我必须在2015年1月1日至2018年12月31日之间的每一天都应用此规则。 ->每天前进。目的是在这段时间里接受我曾经投资过的所有名字。在2015年1月2日,2015年1月3日到2018年12月31日之间命名。

有人处理过这样的问题并且有解决方案来进行for循环吗?

0 个答案:

没有答案