2016-02-26 68 views
0

我有一個維度的座標,它描述了一個段的開始和結束。我正在嘗試編寫一個函數,它告訴我一個段落在另一個段落中。這就是我,在這種情況下,看看如果b是裏面:R整數比較似乎忽略了數字位數

isin <- function(a, b){ 

if (a[beginning] <= b[beginning] && a[end] >= b[end]){ 
    return TRUE 
} 

的問題是,它似乎並不尊重不同的數字長度,例如:

a <- c(2345, 2380) 
b <- c(234600, 237900) 
isin(a, b) 
TRUE 

它好像兩個數字從第一個開始並排放置,並且任何非重疊都被截斷。我對這個東西很新,所以如果我缺少整數的一些基本屬性,請原諒我。

+0

沒有工作的機會:1.開始和結束定義在哪裏2.返回是一個函數,嘗試'isin < - 函數(a,b)a [1] <= b [1] && a [length(a)]> = b [length(b)]' 。 – mvkorpel

回答

0

假設由開始和結束你的意思是一個向量的倒數第一和最後一個元素,這應該工作:

isin <- function(a, b){ 

    if (a[1] <= b[1] & a[length(a)] >= b[length(b)]){ 
    # using length() to get the last element of vector 
    return(TRUE) 
    } else {return(FALSE)} 

} 

使用你的例子:

> a <- c(2345, 2380) 
> b <- c(234600, 237900) 
> isin(a, b) 
[1] FALSE 

它返回TRUE一個例子:

> a <- c(1, 9) 
> b <- c(9, 1) 
> isin(a, b) 
[1] TRUE