我在R中有一个小标题数据集。小标题Daily.log有13个变量和3'924'849个观测值。该小标题包含从2013-12-27到2019-01-31的加密资产数据。目的是弄清楚在2015年1月1日至2018年12月31日之间我将投资哪些加密货币资产。
名称;日期;兰克诺打开;高;低;关;体积;市场; 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个。
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循环吗?