【发布时间】:2019-04-04 03:03:57
【问题描述】:
我有一个数字向量:
v <- seq(1, 50, .5)
如果我想围绕一个特定数字对所有相邻的三个值进行子集化:25。
24 24.5 25
24.5 25 25.5
25 25.5 26
有什么方便的方法吗?
【问题讨论】:
标签: r
我有一个数字向量:
v <- seq(1, 50, .5)
如果我想围绕一个特定数字对所有相邻的三个值进行子集化:25。
24 24.5 25
24.5 25 25.5
25 25.5 26
有什么方便的方法吗?
【问题讨论】:
标签: r
你可以使用绝对差:
v[abs(v-25) <= 1]
【讨论】:
这是一个将值 25 周围的值子集化的选项,然后将其转换为每个 3 个元素的 matrix
v1 <- v[which(v == 25) + (-2:2)]
embed(v1, 3)[, 3:1]
# [,1] [,2] [,3]
#[1,] 24.0 24.5 25.0
#[2,] 24.5 25.0 25.5
#[3,] 25.0 25.5 26.0
【讨论】:
n <- 3 例如:v[which(v==25) + (-n+1):0 + rep(seq_len(n)-1,each=n)]