2014-01-20 7 views
0

So I У меня есть два вектора. Первые из них выглядит следующим образом -Boxplot двух векторов разных типов

 70  71  72  73  74  75  76  77 
2.997500 2.680833 3.000833 5.443333 2.652500 7.115833 5.109167 5.730000 
     78  79  80  81  82  83  84  85 
6.866667 4.562500 4.725000 2.747500 3.861667 4.980833 3.940833 4.792500 
     86  87  88  89  90 
6.679167 3.100833 2.915833 3.904167 4.465833 
[1] "double" 

Если последние двойные приходят от того, когда я делаю печать TYPEOF переменные, которая содержит вектор (я предполагаю, что это должно быть вектором двойников).

Я также использую эту функцию -

findLastRowVal = function(x){ 
    (tail(x[!is.na(x)],1)) 
} 

с функцией применения, чтобы найти последнее значение кучи строк в кадре данных - это значение -

 [1] "N" "Y" "Y" "Y" "Y" "N" "Y" "N" "Y" "N" "Y" "Y" "Y" "Y" "Y" "Y" "Y" "N" "Y" 
[20] "Y" "Y" 

Я хочу ящик, в котором у меня две диаграммы - одна для Ys и одна для Ns. Если в соответствующем индексе во втором векторе есть Y, то указанное значение в первом векторе должно быть нанесено на диаграмму Y.

Например, 2.99750 соответствует N и должно быть частью окна диаграмма для N.

Как это достичь?

Так что я попытался это сейчас -

x <- data.frame(a=1:10, c=rep(c('Y','N'), 5)) 
jpeg("myplot.jpg") 
boxplot(a ~ c, data=x) 
dev.off() 

, но это дает мне эту ошибку -

null device 
     1 

я предполагаю, что это потому, что нет myplot.jpg (что странно для меня - почему это не R, просто создающий один?) Где я должен создавать этот myplot.jpg?

ответ

2

Поместите их в кадре данных и использовать формулу интерфейс boxplot:

x <- data.frame(a=1:10, c=rep(c('Y','N'), 5)) 
boxplot(a ~ c, data=x) 

enter image description here

+0

так, что я делаю это в ар файл и запуск от терминала - мне нужно, чтобы сделать что-нибудь еще увидеть сюжет? – praks5432

+0

У вас есть графическая рабочая станция? Если это так, он должен открыть окно графика. В противном случае вам нужно будет явно открыть графическое устройство (например, «png»). –

+0

также, не могли бы вы объяснить мне, что здесь происходит? Я не вижу ничего похожего на инструкцию «if». – praks5432

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