我有一个CSV文件,其中包含日期列的两种格式(常规和日期)。与R一起工作时出现问题 >测向头=T >df$日期 [1] 01-01-1989 01-02-1989 01-03-1989 01-04-1989 01-05-1989 01-06-1989 [7] 01-07-1989 01-08-1989 01-09-1989 01-10-1989 01-11-1989 01-12-1989 [13] 1/13/1989 1/14/1989 1/15/1989 1/16/1989 1/17/1989 1/18/1989 [19] 1/19/1989 1/20/1989 1/21/1989 1/22/1989 1/23/1989 1/24/1989 [25] 1/25/1989 1/26/1989 1/27/1989 1/28/1989 1/29/1989 1/30/1989 [31] 1/31/1989 31级:01-01-1989 01-02-1989 01-03-1989 01-04-1989。。。1/31/1989
在为下面的代码执行R时,它在一般格式下运行良好,但对于日期格式,它显示为NA我有一个CSV文件,其中包含日期列的两种格式(常规和日期)。与R一起工作时出现问题 >测向头=T >df$日期 [1] 01-01-1989 01-02-1989 01-03-1989 01-04-1989 01-05-1989 01-06-1989 [7] 01-07-1989 01-08-1989 01-09-1989 01-10-1989 01-11-1989 01-12-1989 [13] 1/13/1989 1/14/1989 1/15/1989 1/16/1989 1/17/1989 1/18/1989 [19] 1/19/1989 1/20/1989 1/21/1989 1/22/1989 1/23/1989 1/24/1989 [25] 1/25/1989 1/26/1989 1/27/1989 1/28/1989 1/29/1989 1/30/1989 [31] 1/31/1989 31级:01-01-1989 01-02-1989 01-03-1989 01-04-1989。。。1/31/1989,r,csv,R,Csv,在为下面的代码执行R时,它在一般格式下运行良好,但对于日期格式,它显示为NA > df<-read.csv("weatherdatatrail.csv") > header=T > df$Date [1] 01-01-1989 01-02-1989 01-03-1989 01-04-1989 01-05-1989 01-06-1989 [7] 01-07-1989 01-08-1989 01-09-1989 01-10-1989 0
> df<-read.csv("weatherdatatrail.csv")
> header=T
> df$Date
[1] 01-01-1989 01-02-1989 01-03-1989 01-04-1989 01-05-1989 01-06-1989
[7] 01-07-1989 01-08-1989 01-09-1989 01-10-1989 01-11-1989 01-12-1989
[13] 1/13/1989 1/14/1989 1/15/1989 1/16/1989 1/17/1989 1/18/1989
[19] 1/19/1989 1/20/1989 1/21/1989 1/22/1989 1/23/1989 1/24/1989
[25] 1/25/1989 1/26/1989 1/27/1989 1/28/1989 1/29/1989 1/30/1989
[31] 1/31/1989
31 Levels: 01-01-1989 01-02-1989 01-03-1989 01-04-1989 ... 1/31/1989
>df$datestr(df)
“data.frame”:31 obs。在10个变量中:
$Date:Date,格式:NA NA。。。
$Longitude:num77.277.277.277.277.277.2。。。
$Latitude:num11.411.411.411.411.411.4。。。
$Elevation:int 282 282 282 282 282 282 282 282 282 282 282。。。
$最高温度:数值28.228.529.629.327.9。。。
$Min.温度:数值10.9 15.4 14.2 16.5 16.3。。。
$降水量:数值0.0378 0.0893 0.2077 0.1785。。。
$Wind:num 2.17 2.1 2.03 2.05 2.09。。。
$相对湿度:数值0.559 0.705 0.718 0.779 0.781。。。
$Solar:num2120.519.319.214.8。。。
>df$日期
[1] 娜娜娜娜娜娜
[6] 娜娜娜娜娜娜
[11] NA NA“1989-01-13”“1989-01-14”“1989-01-15”
[16] "1989-01-16" "1989-01-17" "1989-01-18" "1989-01-19" "1989-01-20"
[21] "1989-01-21" "1989-01-22" "1989-01-23" "1989-01-24" "1989-01-25"
[26] "1989-01-26" "1989-01-27" "1989-01-28" "1989-01-29" "1989-01-30"
[31] "1989-01-31"
我无法得出完美的结果。。请帮助我您可以使用
库(lubridate)
(如@MrFlick所评论)
数据
v1您可以将日期列更改为相同的格式,然后将其转换为日期类型
v1 <- c("01-01-1989", "01-02-1989", "1/15/1989")
日期您应该定义“完美”结果是什么。也许可以查看使用日期值的lubridate
包。您可以尝试library(lubridate)?解析日期时间
或mdy(c('01-01-1989','01-02-1989','1/15/1989'))
如果顺序相同>库(lubridate)>?解析日期时间>解析日期时间(df$date,c('m/%d/%Y'))[1]“1989-01-01 UTC”“1989-01-02 UTC”“1989-01-03 UTC”“1989-01-04 UTC”您能描述一下问题吗?结果如下所示。。当我尝试这个。。。[链接]>库(lubridate)>?解析日期时间>解析日期时间(df$date,c(“%m/%d/%Y”))[1]“1989-01-01 UTC”“1989-01-02 UTC”“1989-01-03 UTC”“1989-01-04 UTC”[链接]
library(lubridate)
as.Date(mdy(v1))
#[1] "1989-01-01" "1989-01-02" "1989-01-15"
v1 <- c("01-01-1989", "01-02-1989", "1/15/1989")
dates <- c("01-01-1989" , "01-02-1989" , "01-03-1989" , "01-04-1989" , "01-05-1989" , "01-06-1989" ,
"01-07-1989" , "01-08-1989" , "01-09-1989" , "01-10-1989" , "01-11-1989" ,"01-12-1989" ,
"1/13/1989" , "1/14/1989" , "1/15/1989" ,"1/16/1989" , "1/17/1989", "1/18/1989" ,
"1/1/1989")
df <- data.frame(Date = dates)
df$Date <- gsub(df$Date , pattern = "-" , replacement = "/")
df$Date <- as.Date(df$Date,format="%m/%d/%Y")
> as.Date(parse_date_time(df$Date,c("%m/%d/%Y")))
[1] "1989-01-01" "1989-01-02" "1989-01-03" "1989-01-04" "1989-01-05"
[6] "1989-01-06" "1989-01-07" "1989-01-08" "1989-01-09" "1989-01-10"
[11] "1989-01-11" "1989-01-12" "1989-01-13" "1989-01-14" "1989-01-15"
[16] "1989-01-16" "1989-01-17" "1989-01-18" "1989-01-19" "1989-01-20"
[21] "1989-01-21" "1989-01-22" "1989-01-23" "1989-01-24" "1989-01-25"
[26] "1989-01-26" "1989-01-27" "1989-01-28" "1989-01-29" "1989-01-30"
[31] "1989-01-31"