簡體   English   中英

根據 R 中的范圍值合並兩個數據框

[英]Merge two data frames based on range value in R

是否有可能有一個函數可以考慮在關節的“by”參數中有一個范圍?

例子:

#Table 1
  A B C D
1 a 1 10 15
2 a 11 1000 12.5
3 b 1 5 2
4 b 6 1000 1

#Table 2
  A B
1 a 53
2 b 3 

聯合表:

  A B 1.D
1 a 53 12.5
2 b 3 2

看起來您想根據與 A 和 B 上的表 1 的滾動連接來更新表 2

library(data.table)
setDT(tb1)
setDT(tb2)

tb2[tb1, on = .(A, B), roll = -Inf, D := i.D]

這更新了tb2所以現在我們有了

tb2
#    A  B    D
# 1: a 53 12.5
# 2: b  3  2.0

使用的數據:

tb1 <- fread('
A B C D
 a 1 10 15
 a 11 1000 12.5
 b 1 5 2
 b 6 1000 1
')

tb2 <- fread('
  A B
 a 53
 b 3 
')

暫無
暫無

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

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