代码之家  ›  专栏  ›  技术社区  ›  Mike S

r viz用于比较多个成对值

r
  •  0
  • Mike S  · 技术社区  · 6 年前

    我有2个数据库的数据,每个数据库有多个度量值(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。多谢告知。 米

    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 回复  |  直到 6 年前
        1
  •  1
  •   Chase    6 年前

    如果我理解正确的话,这应该是你想要的。我重新格式化了数据,这样每个msr有一行,每个db有单独的列。我用过 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)