R Viz用于比较多个配对值

时间:2019-01-12 00:26:57

标签: r

我拥有并擅长2个DB的数据,每个数据都有多个度量(Msr)。每个都有经典的比率数据Num/Denom=Ratio。有人可以建议我在R中使用哪种可视化方法,以图形方式找到Test和X1数据库之间的每个度量,然后每个度量的较大差异(假设为10%以上)。

因此,我们比较第1行和第2行之间的Denom,Num,Rate。     ..然后3,4     ..然后是5,6等

试图在Excel中执行此操作,但阅读到R在此方面可能会更好。但是现在我可以看到大多数配对的viz作品都可以分散显示。我需要一些更传统的东西在我的示例中,我们可以将X1.SRB.Rare标记为低 在我的示例中,我有3个度量,实际上可能是30个。非常感谢您提供信息。 M

db  <- c('test','x1','test','x1','test','x1')
msr <- c('BCS','BCS','CCS','CCS','SRB','SRB')
denom <- c(11848,11049,35836,38458,54160,56387)
num <- c(5255,6376,16908,18124,26253,15000)
rate <- c(44.35,57.71,47.18,47.13,48.47,26.6)


df <- data.frame(db,msr,denom,num,rate)
df
    db msr denom   num  rate
1 test BCS 11848  5255 44.35
2   x1 BCS 11049  6376 57.71
3 test CCS 35836 16908 47.18
4   x1 CCS 38458 18124 47.13
5 test SRB 54160 26253 48.47
6   x1 SRB 56387 15000 26.60

1 个答案:

答案 0 :(得分:1)

如果我正确理解,这应该做您想要的。我调整了数据的形状,以便每个msr有一行,每个数据库有单独的列。我使用data.table来提高性能。

library(data.table)
db  <- c('test','x1','test','x1','test','x1')
msr <- c('BCS','BCS','CCS','CCS','SRB','SRB')
denom <- c(11848,11049,35836,38458,54160,56387)
num <- c(5255,6376,16908,18124,26253,15000)
rate <- c(44.35,57.71,47.18,47.13,48.47,26.6)

df <- data.frame(db,msr,denom,num,rate)
#set as a data.table
setDT(df)
#cast into one row per MSR - fill in with the "rate" variable
out <- dcast(msr ~ db, data = df, value.var = "rate")
#Compute difference
out[, test_x1_diff := test - x1]
#filter out diff >= 10
out[abs(test_x1_diff) >= 10]
#>    msr  test    x1 test_x1_diff
#> 1: BCS 44.35 57.71       -13.36
#> 2: SRB 48.47 26.60        21.87

reprex package(v0.2.1)于2019-01-11创建