R 如何";削减;半个月前的日期

R 如何";削减;半个月前的日期,r,R,函数“cut”提供了一种按“月”、“周”、“季度”剪切日期数据的简单方法,但我想按半月剪切日期数据。有没有一个简单的方法可以做到这一点?假设你是指天文学意义上的半月,在这种情况下,第1-15天属于一个月的前半月,第2天16+属于第二个半月,连续的半月由a、B、C、…、Y表示(I除外)然后创建一些测试数据x,然后计算它的POSIXlt表示,以便我们可以选择年份(表示为自1900年以来的年份数)、月份(表示为0,1,…,11)和月份的日期(1,2,3,…)。然后,我们用字母[-9]计算半个月的指数,

函数“cut”提供了一种按“月”、“周”、“季度”剪切日期数据的简单方法,但我想按半月剪切日期数据。有没有一个简单的方法可以做到这一点?

假设你是指天文学意义上的半月,在这种情况下,第1-15天属于一个月的前半月,第2天16+属于第二个半月,连续的半月由a、B、C、…、Y表示(I除外)然后创建一些测试数据
x
,然后计算它的POSIXlt表示,以便我们可以选择年份(表示为自1900年以来的年份数)、月份(表示为0,1,…,11)和月份的日期(1,2,3,…)。然后,我们用字母[-9]计算半个月的指数,并在该年之前计算该指数。注意,这已经给出了一个分组向量,您根本不需要使用
cut

x <- as.Date("2000-01-01") + seq(0, 100, 15) # test data
x
## [1] "2000-01-01" "2000-01-16" "2000-01-31" "2000-02-15" "2000-03-01"
## [6] "2000-03-16" "2000-03-31"

lt <- as.POSIXlt(x)
paste0(lt$year+1900, LETTERS[-9][2*lt$mon + 1 + (lt$mday > 15)])
## [1] "2000A" "2000B" "2000B" "2000C" "2000E" "2000F" "2000F"

x如果一个月有31天,“半月”是什么?如果你能展示一个你正在尝试做的事情的可复制的例子,那就太好了。因为不够清晰,所以投票结束。@RichardScriven我投票赞成“所有奇数天都是半a,偶数天都是半B”