我有一些价值观 df:
# A tibble: 7 × 1
var1
<dbl>
1 0
2 10
3 20
4 210
5 230
6 266
7 267
我想将其与第二个数据帧进行比较 value_lookup个
# A tibble: 4 × 2
var1 value
<dbl> <dbl>
1 0 0
2 200 10
3 230 20
4 260 30
具体地说,我想基于>=
进行连接,这意味着大于或等于var1
中的数字的值将得到x的值.例如,取原始数据帧的数字210.因为它是>= 200
和<230
,所以它的值将是10.
以下是前expected output名:
var1 value
1 0 0
2 10 0
3 20 0
4 210 10
5 230 20
6 266 30
7 267 30
我认为用{fuzzyjoin}
应该可以做到,但我做不到.
value_lookup <- tibble(var1 = c(0, 200,230,260),
value = c(0,10,20,30))
df <- tibble(var1 = c(0,10,20,210,230,266,267))
library(fuzzyjoin)
fuzzyjoin::fuzzy_left_join(
x = df,
y = value_lookup ,
by = "var1",
match_fun = list(`>=`)
)