匹配范围内两个向量中的元素

时间:2017-09-27 19:11:44

标签: r

我在以下向量中有这种类型的数据。

v1 <- c(15, 20, 30, 45)
v2 <- c(17, 23, 30, 55)

我想仅在每个元素落在v1中元素的特定范围内时匹配它们。我的代码是:

ifelse(v1>v2-5, match(v1, v2), 0)

我的预期输出是:[1] 1 2 3 0

相反,我得到:[1] NA NA 3 0

为什么前两个元素不匹配?

3 个答案:

答案 0 :(得分:1)

第三个值是Public Class WebForm1 Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load End Sub Protected Sub Submit() End Sub Protected Sub GenerateModalText() Dim txt As String = "This is sample text genereated from codebehind" TextBox1.Text = txt End Sub End Class 中匹配v1的唯一元素,因此即使您的条件满足,您也会获得其他元素的v2NA将为返回ifelse()值的元素插入以下值:

TRUE

您可以尝试在那里使用序列:

match(v1, v2)[v1 > v2 - 5]
# [1] NA NA  3

答案 1 :(得分:1)

也许您正在寻找findInterval

findInterval(v1, c(0, v2))
#[1] 1 2 4 4

结果的第3个值是错误的,因此参数left.open必须设置为TRUE

findInterval(v1, c(0, v2), left.open = TRUE)
#[1] 1 2 3 4

ifelse(v1 > v2 - 5, findInterval(v1, c(0, v2), left.open = TRUE), 0)
#[1] 1 2 3 0

答案 2 :(得分:0)

this.getJSONP(JSONPUri, 'myCustomCallbackName').then((data) => {
  console.log(data);
})