我有一系列视频上传,我想显示上个月,半年,一年,两年,一年,三年,上传了多少个视频......
PUBLISHED_AT
属于posixct
类型,应转换为factor
级别以上。
有一个很好的方法吗?好像我不是第一个想到这样的人。
日期如下:
Date<- as.POSIXct(c("2015-12-11 00:00:01", "2016-01-11 00:00:01", "2014-01-11 00:00:01", "2015-12-11 00:00:01", "2016-04-04 08:22:01", "2013-12-11 00:00:01")
, format= "%Y-%m-%d %H:%M:%S")
DF<- data.frame(Date,
Number=ceiling(abs(rnorm(1:6))))
我考虑过使用cut
- 函数,但我不知道如何指定中断
答案 0 :(得分:1)
我的方法是这样的:
PUBLISHED_AT <- as.POSIXct(c("2015-12-11 00:00:01")
, format= "%Y-%m-%d %H:%M:%S")
library(lubridate)
half_year <- interval(start = ymd(Sys.Date() - months(6)), end = ymd(Sys.Date()), tzone = "ECST")
year <- interval(start = ymd(Sys.Date() - months(12)), end = ymd(Sys.Date()), tzone = "ECST")
two_years <- interval(start = ymd(Sys.Date() - months(24)), end = ymd(Sys.Date()), tzone = "ECST")
PUBLISHED_AT %within% c(half_year, year, two_years)
#[1] FALSE TRUE TRUE
您现在可以对所有日期执行此操作,也可以通过lapply()
或其他内容执行此操作。
答案 1 :(得分:1)
感谢J_F,我最终得到了类似的东西:
library(lubridate)
oneMonth <- Sys.time() - ddays(30)
threeMonth <- Sys.time() - ddays(90)
sixMonth <- Sys.time() - ddays(180)
oneYear <- Sys.time() - dyears(1)
twoYear <- Sys.time() - dyears(2)
threeYear<- Sys.time() - dyears(3)
cut(videos$PUBLISHED_AT, c(as.POSIXct(channel$PUBLISHED_AT), threeYear,twoYear,oneYear,sixMonth,threeMonth,oneMonth,Sys.time()))
答案 2 :(得分:0)
您的数据是这样的吗?由于您尚未更新示例
<link href="http://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.min.css" rel="stylesheet"/>
<div class="tooltip">Hover over me
<span class="tooltiptext"><i class="fa fa-bold"></i><i class='fa fa-hourglass'></i></span>
</div>