R语言处理股票K线:如何删除dataframe中每日首行及后续29行
R语言处理1分钟股票K线:删除每个交易日前30行
你现有的代码仅能定位删除每日首行,要覆盖首行及后续29行,可通过索引批量扩展的方式实现,具体代码及说明如下:
完整实现代码
# 定位所有交易日的起始行索引,补充第一行避免首个交易日被遗漏 trade_start_idx <- c(1, which(df$time_difference > 60)) # 批量生成每个起始行后续29行的索引,避免超出数据集总行数 del_idx <- unique(unlist(lapply(trade_start_idx, function(x) { x:min(x+29, nrow(df)) }))) # 直接删除目标行得到结果 df_new <- df[-del_idx, ]
关键说明
- 数据集第一行属于首个交易日的首行,不存在上一行的时间差计算结果,因此需要手动加入起始索引集合
- 加入
min(x+29, nrow(df))的判断,避免最后一个交易日剩余数据不足30行时出现索引越界报错 unique()用于处理极端场景下相邻交易日间隔不足30行的问题,避免重复索引报错
样本数据参考
Time Open High Low Close Volume Wap Gap Count
1 1536154200 234.61 234.95 234.57 234.76 302 234.600 0 31
2 1536154260 234.76 235.23 234.76 235.16 135 235.008 0 94
3 1536154320 235.09 235.33 234.88 235.33 121 235.010 0 109
4 1536154380 235.24 235.35 235.08 235.35 24 235.203 0 22
5 1536154440 235.27 235.47 235.22 235.42 62 235.340 0 35
6 1536154500 235.39 235.81 235.39 235.63 136 235.633 0 110
内容的提问来源于stack exchange,提问作者Davide Piffer
相关产品推荐
相关产品推荐

