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

如何用R(dplyr)从CSV数据框剔除指定年份及股票代码?

用dplyr处理股票数据的正确代码

先处理日期格式(如果未转换)

如果你的Data列还不是标准日期类型,先转成日期格式,方便后续提取年份:

library(dplyr)
library(lubridate)

base.final <- base.final %>%
  mutate(Data = ymd(Data)) # 若日期格式是日-月-年,改用dmy(),根据实际数据格式调整

剔除指定年份和股票代码

假设你要删除的股票代码存放在一个向量里,比如remove_tickers <- c("XXX", "YYY"),执行以下代码完成过滤:

# 定义要剔除的年份和股票代码
exclude_years <- c(2008, 2009, 2018)
remove_tickers <- c("TICKER1", "TICKER2") # 替换成你实际要删除的股票代码

# 过滤数据
base.final <- base.final %>%
  filter(year(Data) %notin% exclude_years,
         Ativo %notin% remove_tickers)

原代码报错原因

你写的base.final[base.final$Data!="2008","2009", "2018",]存在两个问题:

  • 数据框索引语法错误:行筛选需要传入一个逻辑向量,你直接传入多个字符串,R无法解析这种格式。
  • 日期匹配逻辑错误:如果Data是完整日期(如2008-01-01),直接和字符串"2008"比较会完全不匹配,必须先提取年份再做判断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 09:20:11