0
x $ val> = y $ start & x $ < = y $ endの2つのデータフレーム(data.tables)xとyを結合しようとしています。 dplyrを使用することはできません。dplyrの不等式結合を行う唯一の方法は、テーブルを結合して不等式をフィルタリングすることです。結合するテーブルには315kと84kのレコードがあります。それは記憶を吹き飛ばすだろう。R join with data.table
data.tableには不等号結合がありますが、私の人生にとって構文の仕組みを理解できません。この結果を参照してください:私を得ることを期待するものを表示するには
x <- data.table(val = c(1:5), id = "a")
y <- data.table(start = c(1:5), end = c(11:15), id= "a")
x[y, on=c("val>=start","val<=end"),
.(start, val, end)]
start val end
1: 1 1 11
2: 1 1 11
3: 1 1 11
4: 1 1 11
5: 1 1 11
6: 2 2 12
7: 2 2 12
8: 2 2 12
9: 2 2 12
10: 3 3 13
11: 3 3 13
12: 3 3 13
13: 4 4 14
14: 4 4 14
15: 5 5 15
を、ここでdplyrが生成するものです:
x <- data.table(val = c(1:5), id = "a")
y <- data.table(start = c(1:5), end = c(11:15), id= "a")
x %>%
inner_join(y) %>%
filter(val >= start & val <= end)
val id start end
1 1 a 1 11
2 2 a 1 11
3 2 a 2 12
4 3 a 1 11
5 3 a 2 12
6 3 a 3 13
7 4 a 1 11
8 4 a 2 12
9 4 a 3 13
10 4 a 4 14
11 5 a 1 11
12 5 a 2 12
13 5 a 3 13
14 5 a 4 14
15 5 a 5 15
誰もが、それは私がdata.table構文で欠けているされたかを説明することはできますか?あなたは接頭辞(x.
)で左の表からval
列を選択する必要が
を参照してください。わかりましたが、それは本当に混乱しています。ありがとうございました。 – Tom
うん、それは動作が混乱している、うまくいきなり間に合うだろう。 – Psidom