2016-02-07 1 views
2

Я хочу добавить кривую ROC в диаграмму ggplot, но она возвращает ошибку .R ggplot добавить новую кривую roc

library(ggplot2) 
    library(plotROC) 

    set.seed(2529) 
    D.ex <- rbinom(200, size = 1, prob = .5) 
    M1 <- rnorm(200, mean = D.ex, sd = .65) 
    M2 <- rnorm(200, mean = D.ex, sd = 1.5) 

    test <- data.frame(D = D.ex, D.str = c("Healthy", "Ill")[D.ex + 1], 
        M1 = M1, M2 = M2, stringsAsFactors = FALSE) 
    plot<-ggplot(longtest, aes(d = D, m = M1)) + geom_roc() + style_roc() 
    plot 

его нормально, но если им добавить новую ROC линию его возвращение ошибки

plot<-ggplot(longtest, aes(d = D, m = M1)) + geom_roc() + style_roc() 
plot+ggplot(test, aes(d = D, m = M2)) + geom_roc() 

Ошибка в р + о: нечисловой аргумент бинарного оператора В дополнение: сообщение Внимание: Несовместимые методы («+ .gg», «Ops.data.frame») для «+»

Как я могу добавить новую строку и цвет все линии отличается цвет, а также добавить ногу конец

ответ

6

Растопить кадр данных от широкоугольного до длинного формата, затем сопоставить имя переменной в цвет линии в пределах отображений эстетики:

ggplot(melt_roc(test, "D", c("M1", "M2")), 
     aes(d = D, m = M, color = name)) + 
    geom_roc() + 
    style_roc() 

enter image description here


Вы также могли бы сделать это так , если вы хотите:

ggplot() + 
    geom_roc(aes(d = D, m = M1, color="roc1"), test) + 
    geom_roc(aes(d = D, m = M2, color="roc2"), test) + 
    scale_color_manual(values=c("roc1"="red", "roc2"="blue"), 
        name="color legend", guide="legend") + 
    style_roc() 
+0

нет, им нужно добавить строку, потому что мое хранилище данных в разных data.frame Например, в действительности они имеют N data.frame. Как это можно сделать? –

+1

Нет, вы, вероятно, этого не делаете, потому что вы можете объединить эти фреймы данных в один и пометить каждый с переменной фактора, которая будет цветовой переменной в вашем ggplot. – lukeA

+0

Я не могу объединить данные/фрейм, потому что он очень большой, как я могу добавить строку? без привязки data.frame –