如何将字符串格式日期转换为数字格式?R语言技术问询
字符串日期转指定格式的解决方案
你的数据框df2中G列标注为<numeric>但实际存储的是日期字符串(比如" June 28 2021"),这是转换的第一个障碍。以下是直接在数据框上操作的简便方法,无需单独存列到变量:
方法1:Base R 原生处理
# 先将G列转为字符类型(因为当前标注为numeric但实际是字符串) df2$G <- as.character(df2$G) # 解析为Date对象,指定输入格式(%b匹配月份缩写,%d是日期,%Y是4位年份,开头空格要匹配) df2$G <- as.Date(df2$G, format = " %b %d %Y") # 格式化为目标的"MM/DD/YY"字符串格式 df2$G <- format(df2$G, format = "%m/%d/%y")
方法2:用lubridate包简化操作
lubridate的mdy()函数能自动识别"月份 日期 年份"格式,无需手动指定输入格式:
library(lubridate) # 转字符类型 df2$G <- as.character(df2$G) # 解析为日期对象 df2$G <- mdy(df2$G) # 格式化为目标字符串格式 df2$G <- format(df2$G, "%m/%d/%y")
关键说明
- 你之前用
as.Date.numeric()是错误的,因为G列本质是字符串(只是类型标记错误),必须先转字符类型再解析日期。 - 两种方法都直接在原数据框上修改
G列,比单独存变量更高效。 mdy()会自动忽略字符串开头的空格,无需额外处理。
处理后G列会变成你期望的"06/28/21"格式,其他列保持不变。
内容的提问来源于stack exchange,提问作者wigglesthe3rd
相关产品推荐
相关产品推荐

