我有一个发布日期列在我的数据集中,并需要添加一个专栏十年,应该有4个层次的“1980年代”,“1990年代”,“2000年代”,“2010年代”。
1980-01-01至1989-12-31
1990年代,1990-01-01至1999-12-31等
释放日期栏样本

到目前为止,我的代码如下:
df$Decade <- cut(df$Release, c(1970,1980,1990,2000))
levels(df$Decade) <- c("1980s", "1990s", "2000s", "2010s")下面是我遇到的错误:
cut.Date错误(df$cut.Date,10 + c(1970,1980,1990,2000)):“中断”的无效规范
任何帮助都将不胜感激。
发布于 2020-02-16 03:55:10
对于"Date"对象,您不能这样切割。我肯定有一个R基版本,但是lubridate可以使您的生活更轻松,如果您不太关心如何或如果您不想从头开始学习做事情。
library(lubridate)
Decade <- format(floor_date(Release, years(x=10)), "%Y")发布于 2020-02-16 03:51:33
一种方法是将Release转换为日期,只提取一年中的前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 1990shttps://stackoverflow.com/questions/60245143
复制相似问题