簡體   English   中英

如何使用 R 中的剪切函數轉換列日期中的數據

[英]How to transform data in Column Date using cut function in R

我的數據集中有一個發布日期列,需要添加一個 Decade 列,它應該有 4 個級別的“1980s”、“1990s”、“2000s”、“2010s”。

1980-01-01 至 1989-12-31 內的 1980 年代

1990-01-01 至 1999-12-31 等 1990 年代

發布日期列示例

在此處輸入圖片說明

到目前為止,這是我的代碼:

df$Decade <- cut(df$Release, c(1970,1980,1990,2000))
levels(df$Decade) <- c("1980s", "1990s", "2000s", "2010s")

這是我得到的錯誤:

cut.Date(df$Release, 10 + c(1970, 1980, 1990, 2000)) 錯誤:'breaks' 規范無效

任何幫助將不勝感激。

對於"Date"對象,您不能那樣剪切。 我確定有一個 R 基礎版本,但如果您不太關心如何或不想從頭開始學習做事, lubridate可以讓您的生活更輕松。

library(lubridate)

Decade <- format(floor_date(Release, years(x=10)), "%Y")

一種方法是將Release轉換為 date,僅提取年份的前 3 個字符。 因此,1991 為 199,1987 為 198,然后添加"0s"以獲得十年。

df <- data.frame(Release = c('5/21/1980', '12/12/1980', '5/12/1991'))
df$Decade <- paste0(substring(as.Date(x, '%m/%d/%Y'), 1, 3), "0s")
df
#     Release Decade
#1  5/21/1980  1980s
#2 12/12/1980  1980s
#3  5/12/1991  1990s

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM