Tôi có thể làm điều gì đó ngu ngốc và không nhìn thấy nó, nhưng:R strptime Năm và Tháng với Không Delimiter trở NA
> strptime("201101","%Y%m")
[1] NA
Từ sự giúp đỡ strptime:
% Y Năm với thế kỷ
% m Tháng dưới dạng số thập phân (01–12)
Tôi có thể làm điều gì đó ngu ngốc và không nhìn thấy nó, nhưng:R strptime Năm và Tháng với Không Delimiter trở NA
> strptime("201101","%Y%m")
[1] NA
Từ sự giúp đỡ strptime:
% Y Năm với thế kỷ
% m Tháng dưới dạng số thập phân (01–12)
Chỉ cần dán trường ngày (giả sử "01") mà bạn bỏ qua:
R> shortdate <- "201101"
R> as.Date(paste(shortdate, "01", sep=""), "%Y%m%d")
[1] "2011-01-01"
R>
Tôi thích as.Date()
cho các ngày và strptime()
cho các đối tượng POSIXct
, tức là ngày và giờ.
Sau đó bạn có thể chuyển đổi các phân tích cú pháp Date
đối tượng vào một đối tượng POSIXlt
để lấy năm và tháng:
R> mydt <- as.Date(paste(shortdate, "01", sep=""), "%Y%m%d")
R> myp <- as.POSIXlt(mydt)
R> c(myp$year, myp$mon)
[1] 111 0
R>
Đây là hành vi POSIX tiêu chuẩn với năm như "Năm - 1900" và tháng như zero-lập chỉ mục.
vì vậy trong R bạn không thể nói rằng không có chữ số ngày, bạn phải tiêm giả định là 01. lạ. – userJT
Bạn đã tìm thấy lỗi tài liệu với * 'strptime' * mà ngày-tháng-ngày tất cả phải được cung cấp, không bao giờ được nêu ở bất kỳ đâu: *" Đối với strptime chuỗi đầu vào không cần chỉ định ngày hoàn toàn: giả định rằng không xác định giây, phút hoặc giờ bằng không, và năm, tháng hoặc ngày không xác định là hiện tại. "* – smci