R 如何对照映射表中的值范围进行检查?

R 如何对照映射表中的值范围进行检查?,r,dplyr,R,Dplyr,投入: library(dplyr) A <- data_frame(Type=c("A","A","B"),R=c(3, 7, 12), Value = c(120, 130,300)) A Type R Value (chr) (dbl) (dbl) 1 A 3 120 2 A 7 130 3 B 12 300 库(dplyr) A使用数据的非等联接功能。table非常适合这种情况。使用: library(d

投入:

library(dplyr)
A <- data_frame(Type=c("A","A","B"),R=c(3, 7, 12), Value = c(120, 130,300))
A
   Type     R Value
  (chr) (dbl) (dbl)
1     A     3   120
2     A     7   130
3     B    12   300
库(dplyr)

A使用
数据的非等联接功能。table
非常适合这种情况。使用:

library(data.table)

setDT(A)
setDT(Mapping)

A[Mapping, on = .(Type, R > Rmin, R < Rmax), isAbove := Value > Threshold]

需要澄清的两个问题:(1)
Value
需要如何更改?这背后似乎没有任何逻辑。(2) 对于
B
中的第二行,
isAbove
应为
TRUE
,因为
130
高于
100
对应的
行(即第2行)。是吗?@jaap,谢谢你指出来。(1) 
Value
列中有一个输入错误<代码>值
B列应该从A复制过来。(2)你没问题。更新了问题。
B <-  data_frame(Type=c("A","A","B"),R=c(3, 7, 12), Value = c(60, 90,250), isAbove = c(T,F,F))
 B

    Type     R Value isAbove
   (chr) (dbl) (dbl)   (lgl)
 1     A     3    120    TRUE
 2     A     7    130   TRUE
 3     B    12    300  FALSE
library(data.table)

setDT(A)
setDT(Mapping)

A[Mapping, on = .(Type, R > Rmin, R < Rmax), isAbove := Value > Threshold]
> A
   Type  R Value isAbove
1:    A  3   120    TRUE
2:    A  7   130    TRUE
3:    B 12   300   FALSE