[問題] 不同data.table(frame)範圍篩選

作者: daybreakya (熊貓)   2019-06-25 23:43:54
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
[軟體熟悉度]:
入門(寫過其他程式,只是對語法不熟悉)
[問題敘述]:
我有兩個不同的data.table,想將第一個data.table內的資料(num、value),
透過Mark關聯到第二個data.table,並設定範圍來做篩選,最後顯示出不符合的資料
目前有做一個簡單的資料來測試,看起來是有跑出來想要的結果
但將此概念套用在另一個真正想做的地方上
(資料更複雜的,有小數點、DT1的資料更多列)
好像沒有篩選乾淨的樣子,不知道在R中,兩張表的資料篩選,可以這樣做嗎?
或是有建議什麼方法,來得到我想要的結果呢?
[程式範例]:
library(data.table)
library(dplyr)
DT1 <- data.table(ID=c("F","A","E","B","C","D","C"),
num=c(59,3,108,11,22,54,241),
value=c(90,47,189,38,42,86,280),
Mark=c("Mary","Tom","Abner","Norman","Joanne",
"Bonnie","Trista"))
DT2 <- data.table(Mark=c("Mary","Abner","Bonnie","Trista","Norman"),
numA=c(48,20,88,237,20),
numB=c(60,326,54,268,89),
valueA=c(78,34,78,270,59),
valueB=c(90,190,90,385,75))
output <- DT1 %>%
anti_join(merge(DT1, DT2, by = "Mark") %>%
filter(num > numA & num < numB &
value > valueA & value < valueB), by = "Mark" )
[環境敘述]:
R version 3.5.1 (2018-07-02)
[關鍵字]:
選擇性,也許未來有用
作者: andrew43 (討厭有好心推文後刪文者)   2019-06-26 00:24:00
這個例子中你期待的結果應該是什麼?或是提供超乎預期的實例。

Links booklink

Contact Us: admin [ a t ] ucptt.com