![](/img/trans.png)
[英]Extracting “Year” , “Month” and “Day” from Date column which is in continuous string format
[英]Extracting year from two different date format
我有說x
列,它具有兩種不同的日期格式12/31/1998
和12/--/98
。 如您所見,在第二種格式中, date
缺失, year
以2位數字表示。
我需要從列中的所有日期中提取year
。 因此,當我使用Year<- data.frame(format(df$x, "%Y"))
它返回第一種格式的year
。 對於第二種格式,它將返回NA
。
我將不勝感激。 謝謝。
您可能會有點創意,並為丟失的數據指定丑陋的格式,然后保留有效的響應之一:
vals <- c("12/31/1998", "12/--/98")
out <- pmax(
as.Date(vals, "%m/%d/%Y"),
as.Date(paste0("01",vals), "%d%m/--/%y"),
na.rm=TRUE
)
format(out, "%Y")
#[1] "1998" "1998"
如果它們全部采用格式,其中年份是“ /”后的最后一個數字,則可以使用basename
。 然后,您只需要將2個字符的年份轉換為四年格式即可:
vals <- c("12/31/1998", "12/--/98", "68", "69")
yrs <- basename(vals)
yrs <- ifelse(nchar(yrs) == 2, format(as.Date(yrs, format = "%y"), "%Y"), yrs)
yrs
# [1] "1998" "1998" "2068" "1969"
問題是它不適用於早於1969年的日期。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.