0
的第二數據幀我有兩個數據幀:搜索從一個數據幀列中的值在時間間隔
CHR POS
10 289968
10 580270
CHR START STOP
10 250000 300000
10 700422 700500
搜索#1
> subset(df1, CHR==df2$CHR & POS >= df2$START & POS <= df2$STOP)
CHR POS
1 10 289968
但是,如果我翻轉在DF2行的順序,那麼搜索不起作用。例如,df2現在是這樣的
CHR START STOP
10 700422 700500
10 250000 300000
> subset(df1, CHR==df2$CHR & POS >= df2$START & POS <= df2$STOP)
[1] CHR POS
<0 rows> (or 0-length row.names)
爲什麼順序在這裏?
這是因爲條件'POS> = DF2 $ START'(或'CHR == DF2 $ CHR'或'POS <= $ DF2 STOP')比較兩個向量* *元素逐個元件**。邏輯表達式準確地返回一個向量,指示爲「subset」的第二個參數保留哪些行。 – raymkchow
我不認爲我理解。你能詳細說一下嗎? – cryptic0
'df1 $ CHR == df2 $ CHR'返回'[1] TRUE TRUE',因爲'df1 $ CHR'('10')的第一個和第二個元素與'df2 $ CHR'相同。順序很重要,因爲在您翻轉該行的順序後,df1 $ POS> = df2 $ START'和'df1 $ POS <= df2 $ STOP'返回'[1] FALSE TRUE'和'[1] TRUE FALSE',在翻轉之前,而不是「[1]真假」和「[1]真真」。 – raymkchow