如何根据Consecutive列特定值筛选对应股票代码名称?
筛选连续涨跌天数符合特定值的股票代码
你已经通过quantmod包获取了多只股票的连续涨跌天数数据,并生成了last_row_values存储各股票数据的最后一行。要根据Consecutive列的特定值(例如值为2)筛选对应的股票代码,可以用以下方法:
方法一:基础R实现
# 提取所有股票最后一行的Consecutive列值 consecutive_vals <- sapply(last_row_values, function(row_data) row_data$Consecutive) # 筛选出Consecutive值等于2的股票代码 matched_symbols <- Symbols[consecutive_vals == 2] # 查看结果 matched_symbols
方法二:用purrr包简化代码
如果你习惯使用tidyverse系列工具,可以用purrr包的函数更简洁地实现:
library(purrr) # 直接筛选符合条件的股票代码 matched_symbols <- Symbols[map_lgl(last_row_values, ~ .x$Consecutive == 2)]
代码说明
sapply/map_lgl会遍历last_row_values列表,逐个取出每个股票最后一行数据中的Consecutive值,并与目标值(这里是2)做比较,生成一个逻辑向量。- 用这个逻辑向量去索引原始的
Symbols向量,就能得到所有符合条件的股票代码列表。
内容的提问来源于stack exchange,提问作者Rick
相关产品推荐
相关产品推荐

