r - 如何将 365 天转换为日期类型并合并列?
问题描述
我有一个带有军事格式的年列、日(1/365 天,未指定月份)和小时的数据框。我想知道如何将它们组合到 class 的向量中Date
。
year / day / hour
2004 / 33 / 0845
2005 / 133 / 1300
2005 / 180 / 1600
我正在尝试获得一列 class Date
。
解决方案
您可以首先paste
将 data.frame 的行放在一起,然后将字符向量解析为具有以下内容的Date
向量as.Date
:
df <- data.frame(
year = c("2004", "2005", "2005"),
day = c("32", "133", "180"),
hour = c("0845", "1300", "1600"),
stringsAsFactors = FALSE
)
df
#> year day hour
#> 1 2004 32 0845
#> 2 2005 133 1300
#> 3 2005 180 1600
as.Date(apply(df, 1, paste, collapse = "/"), format = "%Y/%j/%H%M")
#> [1] "2004-02-01" "2005-05-13" "2005-06-29"
在这里,%Y
读取 4 位数的年份、%j
读取日期、%H
读取十进制小时(24 小时)和%M
读取十进制分钟。
推荐阅读
- python - 为什么我的函数用一个值代替另一个值?
- angular - Ag-grid:使用 AggFunc 时如何更改定义列标题名称?
- tensorflow - 如何使用张量流成对损失
- python - 这个例子 Plotly 散点图不起作用,你能告诉我为什么吗?
- azure-active-directory - 无法通过用户名/密码和 Microsoft Graph API、资源所有者密码凭据、Azure AD 登录
- javascript - 在反应路线中使用匹配
- android - Flutter build_runner 包不会更新
- elixir - 在 Ecto 查询中使用变量来引用命名绑定
- powershell - Update-Module 未在脚本中将 PSGallery 存储库作为计划任务找到
- python - 如何将字符串评估为变量名