我正在运行我的同事前一段时间写在他的Rstudio上的代码,我仍然坚持看似非常愚蠢的问题。我在数据框中有一个变量,它是一个字符并代表一个日期,例如
30jan2016
38feb2016
我需要将此字符串转换为日期变量,我使用以下内容:
df$newvar <- format(as.Date(df$oldvar, format="%d%b%Y"), format="%Y%m%d")
这就是我得到的:
NA
2016-02-28
经过一段时间后,虽然我意识到我的Rstudio正在读意大利语中字符串的“月份”部分(下面你可以找到月份缩写ENG-ITA的比较),并正确解码它在ITALIAN中可以读到的内容。改变全球语言选项没有帮助(并且无论如何R语言已经设置为英语)。有什么想法吗?
谢谢!
ENG ITA
jan gen
feb feb
mar mar
apr apr
may mag
jun giu
jul lug
aug ago
sep set
oct ott
nov nov
dec dic
注意:当然我可以替换字符串的一部分,然后运行这段代码,但是我需要这个代码在任何计算机上以英文运行。
答案 0 :(得分:1)
试试readr
。可以手动设置区域设置。
library(readr)
parse_date(c("30jan2016", "1feb2017"), "%d%b%Y", locale = locale("en"))