2016-08-19 95 views
-3

我不太清楚为什么这段代码无法正常工作。找不到dplyr对象错误

这里是我的数据看起来像:

head(test) 
    Fiscal.Year Fiscal.Quarter Seller Product.Revenue Product.Quantity Product.Family Sales.Level.1   Group Fiscal.Week 
1  2015   2015Q3 ABCD1234   4000    4  Paper cup  Americas Paper Division   32 
2  2014   2014Q1 DDH1234    300    5 Paper tissue Asia Pacific Paper Division   33 
3  2015   2015Q1 PNS1234    298    6   Spoons   EMEA  Cutlery   34 
4  2016   2016Q4 CCC1234    289    7   Knives  Africa  Cutlery   33 

现在,我的目标是一年总结的收入。

这里是dplyr代码中,我写道:

test %>% 
    group_by(Fiscal.Year) %>% 
    select(Seller,Product.Family,Fiscal.Year) %>% 
    summarise(Rev1 = sum(Product.Revenue)) %>% 
    arrange(Fiscal.Year) 

这行不通。我得到的错误:

Error: object 'Product.Revenue' not found 

然而,当我摆脱select语句,它的作品,但当时我没有能看到与卖家输出,和产品系列。

test %>% 
    group_by(Fiscal.Year) %>% 
# select(Seller,Product.Family,Fiscal.Year) %>% 
    summarise(Rev1 = sum(Product.Revenue)) %>% 
    arrange(Fiscal.Year) 

输出是:

# A tibble: 3 x 2 
    Fiscal.Year Rev1 
     <dbl> <dbl> 
1  2014 300 
2  2015 4298 
3  2016 289 

这种运作良好。

任何想法是怎么回事?自从我在R开始编程已经过了大约3周。所以,我会很感激你的想法。我遵循本指南:https://cran.rstudio.com/web/packages/dplyr/vignettes/introduction.html

而且,我看着如此相似的线程,但我相信他们关于因“+”号的问题:Error in dplyr group_by function, object not found

我要寻找以下的输出:

Fiscal.Year Rev1 Product Family Seller 
     <dbl> <dbl> ...    ... 
1  2014 ... 
2  2015 ... 
3  2016 ... 

非常感谢

+2

您明确忽略它在你的'select'电话。也许你应该使用'select(Seller,Product.Family,Fiscal.Year,Product.Revenue)'? – r2evans

+1

发布上述查询后,我认为问题在于“select”中的列是分类的。所以,dplyr不知道如何总结它们。如果这是真的,我该如何显示这些列(即与项目对应的值)?有什么想法吗? – watchtower

+3

'select'仅选择保留哪些列,所以在您当前调用select之后,数据只有三列(不是'Product.Revenue')。没什么奇特的,你的电话类似于'test [,c(“Seller”,“Product.Family”,“Fiscal.Year”)](尽管有分组)。 – r2evans

回答

0

确定。这奏效了:

test %>% 
    group_by(Fiscal.Year, Seller,Product.Family) %>% 
    summarise(Rev1 = sum(Product.Revenue)) %>% 
    arrange(Fiscal.Year) 

输出:

Source: local data frame [4 x 4] 
Groups: Fiscal.Year, Seller [4] 

    Fiscal.Year Seller Product.Family Rev1 
     <dbl> <chr>   <chr> <dbl> 
1  2014 DDH1234 Paper tissue 300 
2  2015 ABCD1234  Paper cup 4000 
3  2015 PNS1234   Spoons 298 
4  2016 CCC1234   Knives 289