r - 如何将 R 中的数值更改为日期?
问题描述
嗨,这个问题一直困扰着我一段时间。
所以我试图将我的 R 项目中的所谓日期转换为实际日期。现在日期以数字方式排列,即 2/28/2020 之后不是 2020 年 3 月 1 日,而是 2020 年 2 月 3 日。
我试过了
as.Date(3/14/2020, origin = "14-03-2020")
并且
df <- data.frame(Date = c("10/9/2009 0:00:00", "10/15/2009 0:00:00"))
as.Date(df$Date, "%m/%d/%Y %H:%M:%S")
和
strDates <- c("01/28/2020", "05/03/2020")%>%
dates <- as.Date(strDates, "%m/%d/%Y")
我只是插入了两个日期来测试它是否有效,因为大约有 40 个日期。但是,我的输出如下:
Error in as.Date.default(., 3/14/2020, origin = "14-03-2020") : do not know how to convert '.' to class “Date”
对于第一个,然后
第二个是:
data frame not found
第三个是
Error in as.Date(strDates, "%m/%d/%Y") : object 'strDates' not found
解决方案
您的代码存在问题:
as.Date(3/14/2020, origin = "14-03-2020")
首先,R 将替换
3/14/2020
为0.000106082
,因为这就是 3 除以 14 除以 2020 等于。您需要使用单引号或双引号将其标识为字符串,如:as.Date("3/14/2020", origin = "14-03-2020")
。但这仍然被打破。转换为 时
Date
,如果您提供character
(字符串)输入,则可能需要提供format=
,因为它需要知道字符串中的哪些数字对应于年、月、日等。如果您提供numeric
(或integer
)输入,则您确实需要提供origin=
,以便它知道“第 0 天”是什么。对于 unix,epoch 是你所需要的,所以origin="1970-01-01"
. 如果您使用 Excel 中的日期,则需要origin="1899-12-30"
(请参阅https://stackoverflow.com/a/43230524)。您的下一个错误是因为您将 magrittr ops 与 ... base R 混合在一起。
strDates <- c("01/28/2020", "05/03/2020")%>% dates <- as.Date(strDates, "%m/%d/%Y")
这里的问题与日期无关。第 1 行的使用
%>%
是获取第 1 行的输出(在 R 中,对变量的赋值不可见地返回分配的数字,这就是链接赋值起作用的原因,a <- b <- 2
)并将其作为下一个函数调用中的第一个参数注入。有了这个,您的代码最终被解释为strDates <- c("01/28/2020", "05/03/2020")%>% { dates <- as.Date(., strDates, "%m/%d/%Y") }
这显然不是您想要或需要的。我怀疑这只是感到沮丧的产物,并且正在从管道转换为其他东西的中期阶段
%>%
,而您忘记清理%>%
s. 这可能是dates <- c("01/28/2020", "05/03/2020") %>% as.Date("%m/%d/%Y") dates # [1] "2020-01-28" "2020-05-03"
您的 data.frame 代码似乎工作正常,尽管您没有将新分配的
Date
值分配回框架。试试这个轻微的改编:df <- data.frame(Date = c("10/9/2009 0:00:00", "10/15/2009 0:00:00")) df$Date <- as.Date(df$Date, "%m/%d/%Y %H:%M:%S") df # Date # 1 2009-10-09 # 2 2009-10-15 str(df) # 'data.frame': 2 obs. of 1 variable: # $ Date: Date, format: "2009-10-09" "2009-10-15"
推荐阅读
- c++ - 将VS中的账户信息存储到SQL数据库
- c# - 不支持转换({document}.field)
- regex - 正则表达式:在加号之前删除一个字符?
- css - 如何水平对齐多个顶点饼图
- regex - 多个电子邮件 ID 的正则表达式中的灾难性回溯
- javascript - 谷歌地图初始化在 safari 浏览器的浏览器历史堆栈中推送一条空路线
- django - 带有外键和双下划线的 Django 模型操作
- python - pool.map 中“chunksize”的作用是什么?
- php - 如何从数据库中的时间戳字段过滤php中的日期月份和年份
- asp.net-mvc - ASP.NET MVC SelectList 在创建时不选择值