You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R的tidyquant包计算个股最低调整股价遇问题求助

问题分析与解决方案

嘿,我来帮你排查这个问题~首先明确一点:你用的dplyr分组计算逻辑本身是正确的,问题出在一个容易忽略的细节上,咱们一步步拆解:

1. 核心错误:日期参数格式不对

你在tq_get里写的from = 1980-01-01和to = 2018-05-05没有加引号,R会把它当成算术表达式计算(比如1980-01-01会被算成1980-1-1=1978),而不是识别为日期字符串。这会导致tq_get下载的股票数据范围完全不符合预期,甚至可能数据异常,间接让你误以为分组计算出了问题。

2. 修正后的完整代码

只需要给日期加上引号,再运行你的分组逻辑就能得到正确结果:

library(tidyquant)

# 修正日期参数为字符串格式
data <- c("AAPL", "MMM") %>% 
  tq_get(get = "stock.prices", from = "1980-01-01", to = "2018-05-05")

# 你的dplyr用法是对的,分组计算每家公司的最低调整股价
data_with_lowest <- data %>% 
  group_by(symbol) %>% 
  mutate(lowest = min(adjusted, na.rm = TRUE)) %>% 
  ungroup() # 可选操作,取消分组避免后续代码受分组状态影响

# 验证结果
head(data_with_lowest)

3. 额外验证建议

如果修正后还是有疑问,可以先检查下载的数据是否正常:

  • 用count(data, symbol)查看两家公司的记录数是否符合时间范围的预期
  • 用filter(data, symbol == "AAPL") %>% summarise(min_adjusted = min(adjusted, na.rm = TRUE))单独计算AAPL的最低值,和新增列的lowest对比,确认分组计算生效

内容的提问来源于stack exchange,提问作者Tall Measure

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 03:38:06