[問題] 不同data.table(frame)範圍篩選
[問題類型]:
程式諮詢(我想用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)
[關鍵字]:
選擇性,也許未來有用
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.37.138.65 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1561477436.A.EBB.html
→
06/26 00:24,
5年前
, 1F
06/26 00:24, 1F
→
06/26 00:26,
5年前
, 2F
06/26 00:26, 2F
應該說,我有得到我想要的結果,想確認的是,兩張data.table
如果是用我這方法來過濾資料,會不會有問題?(沒有正確比對之類的情況)
filter(num > numA & num < numB & value > valueA & value < valueB)
※ 編輯: daybreakya (120.127.169.50 臺灣), 06/26/2019 14:53:37
推
06/26 18:22,
5年前
, 3F
06/26 18:22, 3F
R_Language 近期熱門文章
PTT數位生活區 即時熱門文章