2014-11-20 6 views
0

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

AgeGroup 
26-49 50-64 65 and over Under 26 
101  16  5   25 

и

Role 
A/C  C/H      Dietician 
6  8      2 
Doctor Healthcare Assistant Lab 
56  7      2 
Nurse Pharmacist    Phlebotomist 
54  5      1 
Radiographer     Therapist 
1        5 

После прочтения ответа на вопрос здесь с 2012 года я ожидал получить spineplot с помощью следующей команды:

plot(mydata$Role,mydata$AgeGroup,xlab="Role",ylab="Age Group") 

но он возвращает:

Error in plot.window(...) : need finite 'xlim' values 
In addition: Warning messages: 
1: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion 
2: In xy.coords(x, y, xlabel, ylabel, log) : NAs introduced by coercion 
3: In min(x) : no non-missing arguments to min; returning Inf 
4: In max(x) : no non-missing arguments to max; returning -Inf 
5: In min(x) : no non-missing arguments to min; returning Inf 
6: In max(x) : no non-missing arguments to max; returning -Inf 

Я предполагаю, что предупреждение сообщение 1 говорит мне, что xycoords() пытается принуждать категориальные элементы в числовые данные и, когда он не в состоянии сделать так, возвращается Nas, который не дает участок() ничего работать с.
Одним словом, что я не понимаю и как его исправить?

+0

Существует метод plot.table, поэтому почему бы не попробовать: 'с (mydata, plot (таблица (Role, AgeGroup), xlab =" Role ", ylab =" Age Group ")' –

+0

Спасибо, это отлично! Теперь я могу потратить некоторое время на выяснение, как это работает :-) – Gerard

+2

'with' создает локальную среду, где имена столбцов интерпретируются как объекты, а внутри этого env объект таблицы передается в' plot'. Функция «plot» является общей (попробуйте ввести «методы (сюжет)»), поэтому он ищет правильный метод для «классифицированного по таблице» объекта и выполняет свою работу. Чтобы увидеть код для 'plot.table', который не экспортируется, вам нужно использовать' getAnywhere (plot.table) ' –

ответ

0

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

Существует В plot.table метод так почему бы не попробовать: с (MyData, сюжет (таблица (Role, возрастная группа), xlab = "Роль »ylab =„Возрастная группа“) - BondedDust 3 часа назад

with создает локальную среду, в которой имена столбцов интерпретируются как объекты, и в этой среде, а«table'-объект передается plotplot. функция является типичной (попробуйте ввести methods(plot)), поэтому она ищет правильный метод для «классифицированного по таблице» объекта и выполняет свою работу. Чтобы увидеть код для plot.table whi ch не экспортируется, вам нужно использовать getAnywhere(plot.table)

+0

Понимание документации и сообщений об ошибках займет у меня время LONG, помощь, которую вы предоставляете, бесценный, спасибо. – Gerard

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