【发布时间】:2025-12-15 12:05:04
【问题描述】:
使用 RStudio 1.1.4,可以从源代码运行,但现在进行交互测试。尝试获取 readline 输入并按日期对我的数据框进行子集化。所以这里是框架的数据结构:
'data.frame': 101242 obs. of 10 variables:
$ name : chr (names)
$ Task_Date : Date, format: "1997-05-09" "1997-05-20" "1997-05-23" "1997-05-28" ...
$ Wo_Num : chr "-0-0 " "-0-0 " "-0-0 " "-0-0 " ...
$ Time_Code : chr "SH" "SH" "SH" "SH" ...
$ Task_Code : chr "IND-SH" "IND-SH" "IND-SH" "IND-SH" ...
$ Task : chr "SHOP/BREAK TIME" "SHOP/BREAK TIME" "SHOP/BREAK TIME" "SHOP/BREAK TIME" ...
$ hours : num 2 2 1 1 2 2 2 4 5 8 ...
$ labor_rate: num 0 0 0 0 0 0 0 0 0 0 ...
$ cost : num 148 148 74 74 148 148 148 296 370 592 ...
$ Shop : chr "Radio" "Radio" "Radio" "Radio" ...
以下是函数:
begdate <- function()
{
n <- readline(prompt = "Enter begin date:" )
return(as.Date(n))
}
enddate <- function()
{
n <- readline(prompt = "Enter end date:" )
return(as.Date(n))
}
bdate <- begdate()
edate <- enddate()
这是交互式输出:
bdate
输入开始日期:12/31/2017
类(日期)
[1]“字符”
(为 edate 运行它也是如此)
果然,
TLSub = bdate)
charToDate(x) 中的错误: 字符串不是标准的明确格式
我在这里缺少什么? 感谢您的帮助
【问题讨论】:
-
as.Date.date要求输入是date对象。使用as.Date() -
RStudio 版本无关 - 给 R 版本。
-
当我运行示例代码时,由于 Alex 指出的错误,它死了,并显示以下消息:
Error in as.Date.date(n) : 'n' is not a "date" object。我认为我们没有看到真正的代码。 -
如果我使用
as.Date而不是as.Date.date,我会收到 Mark 的错误消息。原因是 R 永远不会猜测 M/D/Y 格式。如果你真的想使用它,你需要在as.Date调用中提供它,或者使用更宽容的转换函数(如anytime::anydate("12/31/2017"),它是正确的)。 -
对不起,是的,我使用 as.Date 运行它,但由于意外擦除和记错了我使用的内容而更改了它。但除此之外,它是正确的代码。