as.Date 给我 NA 的

问题描述

我已经尝试了此线程 as.Date returning NA while converting from 'ddmmmyyyy' 中的所有内容来尝试解决我的问题。

我正在使用这些命令将因子转换为日期:

cohort$doi <- as.Date(cohort$doi,format= "%Y/%m/%d")

我所有的日期目前都采用以下格式:YYYY-MM-DD,所以据我所知,以上应该有效

我昨天使用此代码将各种变量的所有日期从因子转换为日期。它昨天工作了,一切都很好。今天我打开我的脚本并导入我的数据,运行此命令并查看我的数据,但现在所有日期都显示为 NA。

我已经尝试了以前线程中的所有内容(除了上面链接的那个之外,我还看了一些),但到目前为止没有任何效果。我不知道现在该怎么办

doi 列的示例:

1970-01-01

1970-02-02

1970-03-03

1970-04-04

该列当前被归类为一个因素。当我执行上面使用的代码时,该列被定义为日期,但现在所有日期都显示为 NA 除了今天关闭 R 并再次打开它之外,我没有做其他任何事情。

解决方法

如果您阅读了 - name: Get latest workflow run status uses: actions/github-script@v3 id: latest-workflow-status with: script: | const runs = await github.actions.listWorkflowRuns({ owner: context.repo.owner,repo: context.repo.repo,workflow_id: 'runtests.yml',per_page: 2 }) return runs.data.workflow_runs[1].conclusion result-encoding: string (...) - name: Send mail if previous workflow run failed and the current succeeded if: ${{ success() && steps.latest-workflow-status.outputs.result == 'failure' }} (...) - name: Send mail if previous workflow run succeeded and the current failed if: ${{ failure() && steps.latest-workflow-status.outputs.result == 'success' }} (...) 的文档,您会注意到默认格式是 as.Date%Y-%d-%m

默认格式遵循 ISO 8601 国际标准的规则,将一天表示为“2001-02-03”。

在您的代码中,您已指定日期格式为斜杠,但您的示例数据显示它们格式为 %Y/%d/%m 使用的默认格式:

as.Date

注意:doi <- as.factor(c("1970-01-01","1970-02-02","1970-03-03","1970-04-04")) as.Date(doi) # default format %Y-%m-%d [1] "1970-01-01" "1970-02-02" "1970-03-03" "1970-04-04" as.Date(doi,format = "%Y/%m/%d") # incorrect specification of your date format [1] NA NA NA NA as.Date("1970/01/01") # also a default format [1] "1970-01-01" 接受字符串、因子、逻辑 NA 和类“POSIXlt”和“POSIXct”的对象。