r - R问题存储为因子R的日期列无法转换
问题描述
我已经从 Yahoo Finance 股票代码 GSPC 下载了 SP500 数据,并试图按年份对其进行过滤,但是 Date 列存储为 Factor,因此 R 无法对其进行过滤。谁能帮我转换一下?我尝试了多种解决方案,但没有任何效果。
到目前为止,我已经使用了加载的 lubridate 包并使用了以下代码,但是所有值都被替换为NA
's.
as.Date(SP500$Date, format = "%m-%d-%Y")
然后我使用了:SP500$Date <- ymd(SP500$Date, format = "%Y-%m-%d")
代码,再次没有发生任何事情。(SP500
是我存储数据的数据框的名称)
此外,尝试使用 justSP500$Date <- as.Date(SP500$Date)
但 R 说不知道如何将其转换为日期。
任何帮助将非常感激!谢谢!
解决方案
类只存在于编程语言的环境中。可能发生的情况是您的数据(可能是 .csv 文件?)factor
在读取过程中被 R 解释为。
您在这里尝试做的所有事情都可以使用base
R 中的库来完成(这意味着您不需要导入任何东西)。
如果您正在处理日期:
df$date <- as.Date(df$date, format = "%Y-%m-%d")
如果您正在处理日期时间:
df$date <- as.POSIXct(df$date, format = "%Y-%m-%d %H:%M:%S")
(显然具体格式可能有所不同;见列表)
有时,R 中的强制转换可能会显得很挑剔。该format
参数有点难以容忍错误。我个人经常误认为-
,或与导致操作引发错误/
混为一谈。显然,如果您的数据中的格式不一致,则无法由您提供的具体描述的实例将导致s."%Y-%m-%d"
"%d-%m-%Y"
format
NA
有时您的日期实际上是整数(例如20181111
);在这种情况下,您可能需要提供'1970-01-01'
给. 例如,如果您正在使用 for 循环遍历 s 的向量,R 将不会尊重传递的 s 的类并将它们转换为s。origin
as.Date()
Date
Date
integer
这听起来像是一个创可贴的解决方案,但是来自常见类型的类强制character
通常写得很好;character
当我不知道为什么我强制上课失败的原因时,我经常先发制人地强制对象。
推荐阅读
- algorithm - 基于属性的算法生成器测试:“找到给定序列中不出现的最小正整数”
- excel - 您可以引用具有可变地址的 Excel 单元格吗?
- java - Java桌面客户端nodejs服务器使用socketio,socket未连接
- python - 将字符串的 TFIDF 相似度计算为 2 个 Pandas 列,并在新列中输出相似度得分
- react-native - WatermelonDB w ReactNative:如何在模型中正确使用@actions?
- sql - 将 oracle sql listagg 函数转换为 Bigquery
- python - 将 SQDIFF 与“滑动窗口视图”匹配的 NumPy 模板
- apache-spark - pySpark writerStream 未在 Jupyter Lab 中向控制台显示输出
- progressive-web-apps - 在运行相同 PWA 的两个离线设备之间同步数据
- python - 如何使用 Update_By_Query 在 Python Elastic Search 的多个文档中更新作为字段对象的字段?