[问题] 不同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