R 更改日期格式(NA错误)

R 更改日期格式(NA错误),r,date,R,Date,所以我有这个数据文件,其中包括日期和其他值。我已使用以下代码导入数据: df <- read.csv(file.choose(), header=T, stringsAsFactors=F) 日期每几千行更改一次 我想更改日期格式,使其为yyyy-mm-dd 我已尝试使用以下代码: df$date <- as.Date(df$date, format="%Y-%m-%d") df$date您可以使用正确的格式 df$date <- as.Date(df$date, form

所以我有这个数据文件,其中包括日期和其他值。我已使用以下代码导入数据:

df <- read.csv(file.choose(), header=T, stringsAsFactors=F)
日期每几千行更改一次

我想更改日期格式,使其为yyyy-mm-dd

我已尝试使用以下代码:

df$date <- as.Date(df$date, format="%Y-%m-%d")

df$date您可以使用正确的
格式

df$date <- as.Date(df$date, format='%Y%m%d')

问题是您的colunm“date”不属于“date”类,它是一个“numeric”向量,因此命令
as.date
返回NA`s

您可以使用以下命令检查colunm date的类是否正确:

class(df$date)
按照@akrun的建议,您应该将日期colunm转换为“字符”向量,然后可以按照您想要的方式格式化样式:

### your data example:
df <- data.frame(date = c(20020102, 20020102),
             x = c(1,2))
class(df$date)
#> [1] "numeric"

#convert the colunm date to character
df$date <- as.character(df$date)

# Then, convert to the desired date format:
df$date <- as.Date(df$date, format='%Y%m%d')

# check the results:
df
#>         date x
#> 1 2002-01-02 1
#> 2 2002-01-02 2

class(df$date)
#> [1] "Date"
###您的数据示例:
df[1]“数字”
#将colunm日期转换为字符
df$日期1 2002-01-02 1
#> 2 2002-01-02 2
类别(df$日期)
#>[1]“日期”
df$date <- as.Date(as.character(df$date), format='%Y%m%d')
library(lubridate)
ymd(df$date)
class(df$date)
### your data example:
df <- data.frame(date = c(20020102, 20020102),
             x = c(1,2))
class(df$date)
#> [1] "numeric"

#convert the colunm date to character
df$date <- as.character(df$date)

# Then, convert to the desired date format:
df$date <- as.Date(df$date, format='%Y%m%d')

# check the results:
df
#>         date x
#> 1 2002-01-02 1
#> 2 2002-01-02 2

class(df$date)
#> [1] "Date"