2016-02-18 5 views
1

У меня есть два data.frames outlier и данные.Участок условных цветов на основе строк

outlier просто сохраняет номера строк, которые необходимо покрасить. данные имеет 1000 данных. Имеются две колонки: x и y. Если номер строка существует в выпадающем Я хочу точки в участке, чтобы быть красным, в противном случае черного

plot(data$x, data$y, col=ifelse(??,"red","black")) 

Что-то должно быть ?? ,

+1

?? должно быть «1: длина (x)% в% outlier' – MichaelChirico

+0

как вы создали« вылет »в первую очередь ... – MichaelChirico

+0

длинный рассказ короткий, если я распечатаю« outlier ». [1] 178 318 333 556 611 615 716 840 965' –

ответ

1

Привет этот способ работает для меня с помощью ifelse, дайте мне знать, что вы думаете:

outlier <- sample(1:100, 50) 
data <- data.frame(x = 1:100, y = rnorm(n = 100)) 
plot(
    data[ ,1], data[ ,2] 
    ,col = ifelse(row.names(data) %in% outlier, "red", "blue") 
    ,type = "h" 
) 
1

Я думаю, что это может быть достигнут путем создания нового столбца цвета в кадре данных:

data$color <- "black" 

Затем установите выбросы в другое значение:

data[outlier,"color"] <- "red" 

Я не имею точные данные но я думаю, что у меня есть нечто похожее на то, что вы хотели бы, используя следующее:

outlier <- c(1, 2, 7, 9) 
data <- data.frame(x=c(1,2,3,4,5,6,7,8,9,10), 
        y=c(1,2,3,4,5,6,7,8,9,10)) 
data$color <- "black" 
data[outlier,"color"] <- "red" 
data 
    x y color 
1 1 1 red 
2 2 2 red 
3 3 3 black 
4 4 4 black 
5 5 5 black 
6 6 6 black 
7 7 7 red 
8 8 8 black 
9 9 9 red 
10 10 10 black 

Fin союзницей участок, используя новое значение в данных:

plot(data$x, data$y, col=data$color) 

Результаты в: the following chart

+0

Он производит правильные цвета, но он немного длиннее. Я бы хотел, если бы он достиг этого с помощью 'ifelse' или более простой версии. Опять же, да, это работает. Спасибо за ваше время –

+0

Привет, Этибар, я немного смущен вашим комментарием. Мое решение - 2 строки. Вы говорите, что принимаете только ответ длиной 0 или 1 строки? – JHowIX

+0

Я уже проголосовал. Я принимаю ваш ответ. –

Смежные вопросы