当我读入我的.csv文件,并从字符串转换start_date时,日期很好,但似乎会缩短时间
我的csv文件如下所示:
SAMPNUM,SITE,VISITNUM,entered_order,method,start_date,start_crew,end_date,end_crew
2002,165,4,736,leaf_litter,8/17/11 0:00,FSA,NA,NA
2003,172,4,737,leaf_litter,8/17/11 0:00,FSA,NA,NA
5004,122,4,21,pitfall,8/17/11 12:15,ADY SJT PSA JRW SWH,9/2/11 0:00,ADY
5005,123,4,22,pitfall,8/17/11 13:00,ADY SJT PSA JRW SWH,9/2/11 0:00,ADY
我首先阅读文件:
sample<-read.csv('SampleType.csv', header = TRUE, na.strings=c("NA",""))
似乎读得很好,我的数据看起来像:
2002 165 4 736 leaf_litter 8/17/11 0:00 FSA NA NA
2003 172 4 737 leaf_litter 8/17/11 0:00 FSA NA NA
5004 122 4 21 pitfall 8/17/11 12:15 ADY SJT PSA JRW SWH 9/2/11 0:00 ADY
5005 123 4 22 pitfall 8/17/11 13:00 ADY SJT PSA JRW SWH 9/2/11 0:00 ADY
但是当我尝试转换日期/时间时,我被困住了。我已经尝试过丢失的东西,但最好的是:
sample$start_date <- as.Date(sample$start_date, "%m/%d/%y %H:%M")
sample$end_date <- as.Date(sample$end_date, "%m/%d/%y %H:%M")
这使我的数据看起来像:
2002 165 4 736 leaf_litter 15203 FSA NA NA
2003 172 4 737 leaf_litter 15203 FSA NA NA
5004 122 4 21 pitfall 15203 ADY SJT PSA JRW SWH 15219 ADY
5005 123 4 22 pitfall 15203 ADY SJT PSA JRW SWH 15219 ADY
但是当我看到值
样品$起始日期[3]
我明白了:
[1]“2011-08-17”
为什么不给它一天的时间?
我确定我做了一些蠢事,比如新手......提前谢谢!
答案 0 :(得分:1)
使用as.POSIXct
或strptime
:
as.POSIXct("9/2/11 4:20", format="%m/%d/%y %H:%M",tz="GMT")
#[1] "2011-09-02 04:20:00 GMT"
strptime("9/2/11 4:20", format="%m/%d/%y %H:%M",tz="GMT")
#[1] "2011-09-02 04:20:00 GMT"
根据定义,班级Date
不包含当天时间的信息。