问题描述
我已经尝试了此线程 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”的对象。