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