[英]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.