无法在R中创建分组摘要数据集

无法在R中创建分组摘要数据集,r,dplyr,summary,R,Dplyr,Summary,我在创建分组摘要统计信息时遇到问题 下面是我用来创建这个摘要数据集的代码 library(dplyr) #sample dataset D A B C VAL PD Agriculture Services Bought with Cash 01OCT2014 10 0.4435714 Agriculture Grain Bought with Cash 0

我在创建分组摘要统计信息时遇到问题

下面是我用来创建这个摘要数据集的代码

library(dplyr)

#sample dataset 
D           A                 B             C        VAL        PD
Agriculture Services    Bought with Cash 01OCT2014   10      0.4435714
Agriculture Grain       Bought with Cash 01OCT2014   10      0.7266667
Agriculture Livestock   Bought with Cash 01OCT2014   10      1.1372414
Agriculture Fr, ve      Bought with Cash 01OCT2014   10      1.5170370
Agriculture Livestock   Financed         01OCT2014   76      1.1372414
Agriculture Fr, ve      Financed         01OCT2014   76      1.5170370
Agriculture Grain       Financed         01OCT2014   76      0.7266667
Agriculture Services    Financed         01OCT2014   76      0.4435714
Agriculture Services    Insurance        01OCT2014   10      0.4435714
Agriculture Livestock   Insurance        01OCT2014   10      1.1372414

groupDF<-select.other %>% 
   group_by(.dots=c("A","B","C")) %>% 
   summarize(PD=mean(PD),VAL=mean(VAL))
相反,我得到了

PD           VAL
0.8574816   6059877

任何帮助或指导都将不胜感激。

如果是字符串,我们可以使用
分组

library(dplyr)
select.other %>% 
      group_by_at(vars(c("A","B","C"))) %>% 
       summarize(PD=mean(PD),VAL=mean(VAL))
# A tibble: 10 x 5
# Groups:   A, B [10]
#   A         B                C            PD   VAL
#   <chr>     <chr>            <chr>     <dbl> <dbl>
# 1 Fr, ve    Bought with Cash 01OCT2014 1.52     10
# 2 Fr, ve    Financed         01OCT2014 1.52     76
# 3 Grain     Bought with Cash 01OCT2014 0.727    10
# 4 Grain     Financed         01OCT2014 0.727    76
# 5 Livestock Bought with Cash 01OCT2014 1.14     10
# 6 Livestock Financed         01OCT2014 1.14     76
# 7 Livestock Insurance        01OCT2014 1.14     10
# 8 Services  Bought with Cash 01OCT2014 0.444    10
# 9 Services  Financed         01OCT2014 0.444    76
#10 Services  Insurance        01OCT2014 0.444    10
数据
select.other如果是字符串,我们可以使用
groupby\u at

library(dplyr)
select.other %>% 
      group_by_at(vars(c("A","B","C"))) %>% 
       summarize(PD=mean(PD),VAL=mean(VAL))
# A tibble: 10 x 5
# Groups:   A, B [10]
#   A         B                C            PD   VAL
#   <chr>     <chr>            <chr>     <dbl> <dbl>
# 1 Fr, ve    Bought with Cash 01OCT2014 1.52     10
# 2 Fr, ve    Financed         01OCT2014 1.52     76
# 3 Grain     Bought with Cash 01OCT2014 0.727    10
# 4 Grain     Financed         01OCT2014 0.727    76
# 5 Livestock Bought with Cash 01OCT2014 1.14     10
# 6 Livestock Financed         01OCT2014 1.14     76
# 7 Livestock Insurance        01OCT2014 1.14     10
# 8 Services  Bought with Cash 01OCT2014 0.444    10
# 9 Services  Financed         01OCT2014 0.444    76
#10 Services  Insurance        01OCT2014 0.444    10
数据
select.other不需要在列名周围加引号:
groupby(A,B,C)
我也试过了。它给了我一个错误,说它找不到列,也不需要在列名周围加引号:
groupby(A,B,C)
我也试过了。它给了我一个错误,说它找不到AHi列,谢谢你的评论,我尝试了这两个选项,但它仍然给我在我的问题中发布的输出
PD VAL 0.8574816 6059877
@Lonewolf我无法用
dplyr_0.8.3
@Lonewolf重现您的问题。我已经更新了我使用的数据结构以及我得到的结果,感谢您的评论,我尝试了这两种选择,但它仍然给我的输出,我张贴在我的问题
PD VAL 0.8574816 6059877
@Lonewolf我无法用
dplyr_0.8.3
@Lonewolf重现您的问题我已更新了我使用的数据结构以及我获得的结果,因为由于一个不相关的问题,我无法获得预期的结果。
select.other %>% 
      group_by(!!! rlang::syms(c("A","B","C"))) %>% 
       summarize(PD=mean(PD),VAL=mean(VAL))
select.other <- structure(list(D = c("Agriculture", "Agriculture", "Agriculture", 
"Agriculture", "Agriculture", "Agriculture", "Agriculture", "Agriculture", 
"Agriculture", "Agriculture"), A = c("Services", "Grain", "Livestock", 
"Fr, ve", "Livestock", "Fr, ve", "Grain", "Services", "Services", 
"Livestock"), B = c("Bought with Cash", "Bought with Cash", "Bought with Cash", 
"Bought with Cash", "Financed", "Financed", "Financed", "Financed", 
"Insurance", "Insurance"), C = c("01OCT2014", "01OCT2014", "01OCT2014", 
"01OCT2014", "01OCT2014", "01OCT2014", "01OCT2014", "01OCT2014", 
"01OCT2014", "01OCT2014"), VAL = c(10L, 10L, 10L, 10L, 76L, 76L, 
76L, 76L, 10L, 10L), PD = c(0.4435714, 0.7266667, 1.1372414, 
1.517037, 1.1372414, 1.517037, 0.7266667, 0.4435714, 0.4435714, 
1.1372414)), class = "data.frame", row.names = c(NA, -10L))