我在以下向量中有这种类型的数据。
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
为什么前两个元素不匹配?
答案 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
的唯一元素,因此即使您的条件满足,您也会获得其他元素的v2
。 NA
将为返回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);
})