Понимание xyplot в R - PullRequest
       9

Понимание xyplot в R

2 голосов
/ 26 сентября 2011

Я новичок в R и пытаюсь понять функцию xyplot в решетке.

У меня есть датафрейм:

df <- data.frame(Mean=as.vector(abc), Cycle=seq_len(nrow(abc)), Sample=rep(colnames(abc), each=nrow(abc)))

и я могу построить его, используя

xyplot(Mean ~ Cycle, group=Sample, df, type="b", pch=20, auto.key=list(lines=TRUE, points=FALSE, columns=2), file="abc-quality")

Мой вопрос: что такое Скупое и Цикл? Глядя на? Xyplot, я вижу, что это какая-то функция, и я понимаю, что они исходят из фрейма данных df, но я не вижу их с ls() и >Mean дает Error: object 'Mean' not found. Я попытался повторить сюжет, заменив df [1] и df [2] на Mean и Cycle соответственно, думая, что они будут равны, но это не так. Может ли кто-нибудь объяснить, что это за типы данных (объекты, переменные и т. Д.) И существует ли общий способ доступа к ним (например, df [1] и df [2])?

Спасибо!

РЕДАКТИРОВАТЬ: xyplot работает нормально, я просто пытаюсь понять, что такое Mean и Cycle с точки зрения того, как они соотносятся с df (метками столбцов?) И есть ли способ поместить их в функцию xyplot, не ссылаясь на них по имени, например df [1] вместо Mean.

Ответы [ 2 ]

3 голосов
/ 26 сентября 2011

Это просто ссылки на столбцы df.

Если вы хотите получить к ним доступ по имени без упоминания df каждый раз, вы можете написать with(df,{ ...your code goes here... }). Блок ...your code goes here... может обращаться к столбцам просто как Mean и Cycle.

Более прямой способ добраться до этих столбцов - df$Mean и df$Cycle. Вы также можете ссылаться на них по позициям как df[,1] и df[,2], но я изо всех сил пытаюсь понять, почему вы захотите это сделать.

Причина, по которой ваш xyplot вызов работает, заключается в том, что он неявно делает эквивалент with(df), где df - ваш третий аргумент xyplot. Многие функции R похожи на это, например, lm(y~x,obs) также правильно выберет столбцы x и y из фрейма данных obs.

2 голосов
/ 26 сентября 2011

Вам необходимо добавить , data=df к вашему звонку на xyplot():

xyplot(Mean ~ Cycle, data=df,                  # added data= argument
       group=Sample, type="b", pch=20, 
       auto.key=list(lines=TRUE, points=FALSE, columns=2), 
       file="abc-quality")

Кроме того, вы можете with(df, ....) и сделать существующий вызов там, где я оставил четыре точки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...