Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 为向量的不同部分使用不同标准的向量子集_R - Fatal编程技术网

R 为向量的不同部分使用不同标准的向量子集

R 为向量的不同部分使用不同标准的向量子集,r,R,给定一个向量sub,我想对该向量进行子集划分,以删除不小于某个阈值x的任何前bp元素,并删除不大于某个阈值y的任何剩余元素。此问题的示例数据可能如下所示: sub <- c(0.05588, 0.05588, 0.05588, 0.05588, 0.05588, 0.05588, 0.05588, 0.05588, 0.0625856, 0.0625856, 0.0625856, 0.0625856, 0.0625856, 0.0692912, 0.0692912, 0.069

给定一个向量
sub
,我想对该向量进行子集划分,以删除不小于某个阈值
x
的任何前
bp
元素,并删除不大于某个阈值
y
的任何剩余元素。此问题的示例数据可能如下所示:

sub <- c(0.05588, 0.05588, 0.05588, 0.05588, 0.05588, 0.05588, 0.05588, 
  0.05588, 0.0625856, 0.0625856, 0.0625856, 0.0625856, 0.0625856, 
  0.0692912, 0.0692912, 0.0692912, 0.0692912, 0.0692912, 0.0692912, 
  0.0692912)
bp <- 10
x <- 0.06
y <- 0.07

sub据我所知,对于数据的第一个
bp
元素,您希望删除高于某个阈值
x
的所有元素,对于其余元素,删除低于某个阈值
y
的所有元素

让我们用一组完整的问题数据来考虑:

set.seed(144)
(sub <- rnorm(10))
#  [1] -1.6505562  0.6028106 -0.4738839 -1.7976130 -1.4211210  0.1588875  0.1297662 -1.2561688
#  [9]  0.1476671  0.9791739
bp <- 5
x <- 0
y <- 0.13

拆分数据的最终目标是什么?是否要对数据的每个子集执行计算?是否需要用于各种分析的
data.frame
对象列表?为不同的子集创建一个分类变量会对您有好处吗?最终目标是在删除阈值数据的情况下重新组合数据集。这是一小段时间序列数据。bp是数据的断点,因此阈值标准各不相同。
new[new<=y][bp:length(new)] <- NA
new2 <- na.omit(new)
set.seed(144)
(sub <- rnorm(10))
#  [1] -1.6505562  0.6028106 -0.4738839 -1.7976130 -1.4211210  0.1588875  0.1297662 -1.2561688
#  [9]  0.1476671  0.9791739
bp <- 5
x <- 0
y <- 0.13
sub[!c(head(sub >= x, bp), tail(sub <= y, -bp))]
# [1] -1.6505562 -0.4738839 -1.7976130 -1.4211210  0.1588875  0.1476671  0.9791739
c(head(sub >= x, bp), tail(sub <= y, -bp))
#  [1] FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE