2014-11-14 1 views
6

Я новичок в пакете dplyr() и пытаюсь использовать его для моего назначения визуализации. Я могу передать свои данные ggplot(), но не смог сделать это с plot(). Я наткнулся на this post, и ответы, в том числе и комментарии, не помогли мне.Использование dplyr, как труба или цепочка для построения()?

Код 1:

emission <- mynei %>% 
    select(Emissions, year) %>% 
    group_by(year) %>% 
    summarise (total=sum(Emissions)) 

emission %>% 
    plot(year, total,.) 

Я получаю следующее сообщение об ошибке:

Error in plot(year, total, emission) : object 'year' not found 

Код 2:

mynei %>% 
    select(Emissions, year) %>% 
    group_by(year) %>% 
    summarise (total=sum(Emissions))%>% 
    plot(year, total, .) 

Это не сработало, и возвратил ту же ошибку.

Интересно, что решение из поста, о котором я упоминал, работает для одного и того же набора данных, но не работает для моих собственных данных. Тем не менее, я могу создать график, используя эмиссия $ year и эмиссия $ итого.

Я ничего не пропустил?

+3

Как показано в ответе на связанный с вами вопрос, это 'plot.formula', который имеет аргумент' data'. Поэтому вам нужно будет использовать «plot (total ~ year,.)». – aosmith

+0

@aosmith Спасибо за разъяснение. Это сработало. – sadiqsaleem

+0

Это также работает без указания '.' - так что вы можете использовать, например. 'plot (total ~ year)'. –

ответ

7

plot.default не принимает аргумент данных, поэтому лучше, чтобы трубы with:

mynei %>% 
    select(Emissions, year) %>% 
    group_by(year) %>% 
    summarise (total=sum(Emissions))%>% 
    with(plot(year, total)) 

В случае, если кто пропустил @ комментарий aosmith по вопросу, plot.formulaделает есть аргумент данных, но, конечно, formula является первым аргументом, поэтому нам нужно использовать ., чтобы поместить данные в нужное место. Так что другой вариант

... %>% 
    plot(total ~ year, data = .) 

Конечно, ggplot принимает data в качестве первого аргумента, поэтому использовать ggplot сделать:

... %>% 
    ggplot(aes(x = year, y = total)) + geom_point() 

lattice::xyplot, как plot.formula: есть аргумент данных, но это не первый , так:

... %>% 
    xyplot(total ~ year, data = .) 

Посмотрите документацию и убедитесь, что используете ., если data не является первым аргументом. Если аргументов data вообще нет, то использование with - неплохая работа.

+0

Спасибо @ Грегор. Это сработало. – sadiqsaleem

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

  • Нет связанных вопросов^_^