我有兩個向量。我想檢查第一個向量的第一個元素是第二個向量的第一個元素和第二個元素之間,然後檢查第一個向量的第二個元素是第二個向量的第三個元素和第四個元素之間,如何才能做到這一點在R?檢查vetcor的元素是否在R中的第二個向量的元素之間
例如,如果我們有絲束矢量
a = c(1.5, 2, 3.5)
b = c(1, 2, 3, 5, 3, 8)
最終結果中的R應是1.5是TRUE和3.5是TRUE和2是FALSE。
我有兩個向量。我想檢查第一個向量的第一個元素是第二個向量的第一個元素和第二個元素之間,然後檢查第一個向量的第二個元素是第二個向量的第三個元素和第四個元素之間,如何才能做到這一點在R?檢查vetcor的元素是否在R中的第二個向量的元素之間
例如,如果我們有絲束矢量
a = c(1.5, 2, 3.5)
b = c(1, 2, 3, 5, 3, 8)
最終結果中的R應是1.5是TRUE和3.5是TRUE和2是FALSE。
x <- c(1.5,3.5,3.5,3.5,4)
y <- 1:5
x > y & x < c(y[-1],NA)
#[1] TRUE FALSE TRUE FALSE FALSE
你需要照顧向量長度的,想想,你想要的結果是當然的x的最後一個元素是什麼。
更強大的解決方案:
x <- c(1.5,3.5,3.5,3.5,4)
findInterval(x,y) == seq_along(x)
#[1] TRUE FALSE TRUE FALSE FALSE
x1 <- c(1.5,3.5)
findInterval(x1,y) == seq_along(x1)
#[1] TRUE FALSE
x2 <- c(1.5,3.5,1:5+0.5)
findInterval(x2,y) == seq_along(x2)
#[1] TRUE FALSE FALSE FALSE FALSE FALSE FALSE
這個問題與您以前的問題有何不同? – mnel
@mnel這是一個不同的問題,因爲第一個向量的長度是第二個向量長度的一半,我只想檢查第一個向量的第一個元素是否在第二個向量的第一個元素和第二個元素之間,不想要檢查是否在第二個向量的其他元素之間。 – rose