假设我有一个切点向量,为了这个问题的目的,生成如下:
> seq(0,50,10)
[1] 0 10 20 30 40 50
Run Code Online (Sandbox Code Playgroud)
这是一个长度为6的数字向量.我想生成一个中点的数字向量,以获得以下任何一个(两者都满足我的要求),长度减少一个(在这种情况下,5).
# midpoints, exactly
5 15 25 35 45
# medians excluding right
4.5 14.5 24.5 34.5 44.5
Run Code Online (Sandbox Code Playgroud)
没有找到预先滚动的函数,我开发了一个过程,它将数值向量作为参数(切割点)并返回一个向量(中点).它的工作原理是获取索引1和索引2的中值并将其附加到向量,然后将索引2和索引3的中值附加,依此类推,直到最后一个索引为NULL.
当然,我不能成为第一个有此需求的人.有没有这样的程序包?我不介意自己滚动,但老实说,我宁愿使用一个受到公众严格审查的包裹.
谢谢
Nea*_*ltz 10
拆分差异?
a <- seq(0,50,10)
a[-length(a)] + diff(a)/2
Run Code Online (Sandbox Code Playgroud)
使用的另一种尝试filter,它允许您在中间加权中点,或在左侧或右侧加权一定程度:
x <- seq(0,50,10)
head(filter(x, c(0.5,0.5)), -1)
#[1] 5 15 25 35 45
head(filter(x, c(0.75,0.25)), -1)
#[1] 7.5 17.5 27.5 37.5 47.5
head(filter(x, c(0.25,0.75)), -1)
#[1] 2.5 12.5 22.5 32.5 42.5
Run Code Online (Sandbox Code Playgroud)