2014-01-09 2 views
1

Alright, это, наверное, так просто, что никто не писал его (или я не могу найти его):Plot только 5 из 7 уровней фактора в R

У меня есть переменная с 7 факторами:

[1] "NICHT ERHOBEN"  "STIMME VOLL ZU"  "STIMME EHER ZU"  "STIMME EHER NICHT ZU" 
[5] "STIMME GAR NICHT ZU" "WEISS NICHT"   "KEINE ANGABE" 

Я хотел бы построить переменную с сюжетом (df $ v1, df $ v_with_factors), а R - отлично.

Как опустить первый («nicht erhoben») и последний («keine angabe») фактор при построении графика?

ответ

3

Да это раздражающе неуклюжим, но довольно распространенная задача бут вы можете использовать droplevels

> DF= data.frame(nums=1:8, facs=as.factor(c("A", "A", "B", "B", "C", "C", "D", "D"))) 
    nums facs 
1 1 A 
2 2 A 
3 3 B 
4 4 B 
5 5 C 
6 6 C 
7 7 D 
8 8 D 

Heres путь с пробелами:

> with(DF[which(DF$facs!="A"),], plot(facs, nums)) 

enter image description here

> with(droplevels(DF[which(DF$facs!="A"),]), plot(facs, nums)) 

здесь после того, как вы droplevels:

enter image description here

+0

Работает как очарование, спасибо! :) – LukasKawerau

+0

добро пожаловать. –

1

ли подмножество данных перед построением графика: subdata < - подмножество (DF $ v1, условие)

1

Не зная, как именно ваши данные выглядит как решение, вероятно, будет следующее (я не имею доступа к R в тот момент, чтобы проверить, но подход должен быть штраф):

# Indices of all levels of the factor that you want to plot 
lindex = which(!(levels(df$v_with_factors) %in% c("NICHT ERHOBEN", "KEINE ANGABE"))) 
# Indices of all data records that correspond to the selected levels of the factor 
index = [email protected] %in% lindex 

plot(df$v1[index], df$v_with_factors[index]) 
+0

это работает, спасибо! Версия Стивена работала немного лучше (по-прежнему печатает ярлыки), поэтому я принимаю его ответ, но твоя работала также :) Спасибо еще раз! – LukasKawerau

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