簡體   English   中英

比較r中的兩個表

[英]Comparing two tables in r

我有一個參考位置的表,像x是開始,y是結束。

|---------------------|------------------|
|           x         |        y         |
|---------------------|------------------|
|          10         |         35       |
|---------------------|------------------|
|          58         |         89       |
|---------------------|------------------|

然后我有另一個單一位置的表,我的目標是檢查第二個表中的任何位置是否在第一個表中,考慮到第二個表中的位置可以在col1和col2之間。

|---------------------|
|          12         |     
|---------------------|
|          27         |       
|---------------------|
|          65         |
|---------------------|

from , or even the . 我怎么能檢查這個,因為我不能使用任何 ,甚至是

我們可以使用foverlapsdata.table

library(data.table)
df1 <- data.frame(x = c(10, 58), y = c(35, 89))
df2 <- data.frame(x= c(12, 27, 65), y = c(12, 27, 65))
setDT(df1, key = c('x', 'y'))
setDT(df2, key = c('x', 'y'))
foverlaps(df2, df1, type = "within", which = TRUE)$yid 
#[1] 1 1 2

版本data.table (在CRAN 2016年11月25日)引入了非equi連接 ,可以用來代替foverlaps()

setDT(df1)[setDT(df2), on = .(x <= z, y >= z), which = TRUE]
 [1] 1 1 2 NA 

請注意,第二個表與OP的數據不同,因為添加了第四行,它與任何間隔都不匹配。

數據

df1 <- data.frame(x = c(10, 58), y = c(35, 89))
df2 <- data.frame(z = c(12, 27, 65, 90))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM