如何比较不同长度的向量?
How to compare different lengths of a vector?
我有两个向量:
A <- 10 10 20 19 24 24 17 18 24 24 24 25 16 16 16 25 25 12 12 12 25 24 24 24 24 2 2
和
B <- 2 4 2 2 2 3 2 3 2 3 2
我想比较 A 的前两个元素(此处:10 10
)。为什么?因为 B 的第一个条目是两个。然后我想比较A中的元素3到6(即:20 19 24 24
),因为B的第二个元素是4。依此类推...
当我说我要比较它们时,我想做的是查看所选范围内的任何元素是否低于阈值(例如低于 20)以及其中的另一个元素是否大于另一个阈值(例如 23 ).
期望的输出是计算这两个条件的次数
完成(这里最多可能发生 11 次,因为 B 的长度为 11,这意味着我的向量 A 有 11 个范围,将进行比较)。在此示例中,只有第二个范围会满足条件。因此输出将是 1。如果可以说满足条件的是第二个范围,那也很好。因此输出将是这样的:
count: 1 range: 2
有人知道怎么做吗?
可能有帮助
res <- tapply(A,rep(seq_along(B), B), FUN=function(x) any(x < 20) &
any(x>23))+0L
res
# 1 2 3 4 5 6 7 8 9 10 11
# 0 1 0 0 0 0 0 0 0 0 0
d1 <- data.frame(count=res, range=names(res))
head(d1,3)
# count range
#1 0 1
#2 1 2
#3 0 3
数据
A <- c(10, 10, 20, 19, 24, 24, 17, 18, 24, 24, 24, 25, 16, 16, 16,
25, 25, 12, 12, 12, 25, 24, 24, 24, 24, 2, 2)
B <- c(2, 4, 2, 2, 2, 3, 2, 3, 2, 3, 2)
我有两个向量:
A <- 10 10 20 19 24 24 17 18 24 24 24 25 16 16 16 25 25 12 12 12 25 24 24 24 24 2 2
和
B <- 2 4 2 2 2 3 2 3 2 3 2
我想比较 A 的前两个元素(此处:10 10
)。为什么?因为 B 的第一个条目是两个。然后我想比较A中的元素3到6(即:20 19 24 24
),因为B的第二个元素是4。依此类推...
当我说我要比较它们时,我想做的是查看所选范围内的任何元素是否低于阈值(例如低于 20)以及其中的另一个元素是否大于另一个阈值(例如 23 ).
期望的输出是计算这两个条件的次数 完成(这里最多可能发生 11 次,因为 B 的长度为 11,这意味着我的向量 A 有 11 个范围,将进行比较)。在此示例中,只有第二个范围会满足条件。因此输出将是 1。如果可以说满足条件的是第二个范围,那也很好。因此输出将是这样的:
count: 1 range: 2
有人知道怎么做吗?
可能有帮助
res <- tapply(A,rep(seq_along(B), B), FUN=function(x) any(x < 20) &
any(x>23))+0L
res
# 1 2 3 4 5 6 7 8 9 10 11
# 0 1 0 0 0 0 0 0 0 0 0
d1 <- data.frame(count=res, range=names(res))
head(d1,3)
# count range
#1 0 1
#2 1 2
#3 0 3
数据
A <- c(10, 10, 20, 19, 24, 24, 17, 18, 24, 24, 24, 25, 16, 16, 16,
25, 25, 12, 12, 12, 25, 24, 24, 24, 24, 2, 2)
B <- c(2, 4, 2, 2, 2, 3, 2, 3, 2, 3, 2)