R Viz для сравнения нескольких парных значений - PullRequest
0 голосов
/ 12 января 2019

У меня есть и превосходные данные для 2 БД и нескольких измерений (Msr) для каждого. Для каждого есть классическое соотношение данных Num/Denom=Ratio. Кто-нибудь может подсказать, какую визуализацию я могу использовать в R, чтобы графически найти большие различия (скажем, 10% +) для каждой меры между базами данных Test и X1, а затем для каждой меры.

Итак, мы сравниваем Denom, Num, Rate между строками 1 и 2. ..и тогда 3,4 ..и тогда 5,6 и т. д.

Пробовал делать в Excel, но читал, что R может быть намного лучше для этих целей. Но на данный момент я вижу большинство парных работ, а именно для рассеянного отображения. Мне нужно что-то более традиционное, например в моем примере мы можем отметить 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 голосов
/ 12 января 2019

Если я правильно понял, это должно делать то, что вы хотите. Я изменил данные, так что у вас есть одна строка на 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

Создано в 2019-01-11 пакетом Представить (v0.2.1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...