首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用R中的裁剪函数转换列数据

如何利用R中的裁剪函数转换列数据
EN

Stack Overflow用户
提问于 2020-02-16 03:27:42
回答 2查看 148关注 0票数 0

我有一个发布日期列在我的数据集中,并需要添加一个专栏十年,应该有4个层次的“1980年代”,“1990年代”,“2000年代”,“2010年代”。

1980-01-01至1989-12-31

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

释放日期栏样本

到目前为止,我的代码如下:

代码语言:javascript
复制
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)):“中断”的无效规范

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

发布于 2020-02-16 03:55:10

对于"Date"对象,您不能这样切割。我肯定有一个R基版本,但是lubridate可以使您的生活更轻松,如果您不太关心如何或如果您不想从头开始学习做事情。

代码语言:javascript
复制
library(lubridate)

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

Stack Overflow用户

发布于 2020-02-16 03:51:33

一种方法是将Release转换为日期,只提取一年中的前3个字符。1991年199个,1987年198个,然后再加上"0s"来获得这个十年。

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60245143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档