当前位置:  开发笔记 > 编程语言 > 正文

dplyr group不在Shiny工作

如何解决《dplyrgroup不在Shiny工作》经验,为你挑选了1个好方法。

我正在使用R闪亮的应用程序,因为我有两个下拉框.第一个下拉列表中填充了分类变量,第二个下拉列表中填充了数值变量.然后我在分类变量上应用groupby.这是我的代码.

dataset<- dataUpload()

var1 <- as.character(input$variable1)
var2 <- as.character(input$variable2)

v$data <- dataset %>%
  group_by(dataset[,var1]) %>%
  summarize(Sum=sum(dataset[,var2])) %>%
  arrange(desc(Sum))

它给了我以下输出.

 Source: local data frame [7 x 2]

  dataset[[var1]]                Sum
           (fctr)               (int)

1     Chicken Biryani            37
2       Chicken Kabab            37
3       Chicken Kadai            37
4         Dal Makhani            37
5 Sai Bhaji and Pulav            37
6          Tava Pulav            37
7          Total Meal            37

这是dish_quantity变量的总和.但是我想要这样的东西.

dish_quant <- df_final %>%
              group_by(dish_name) %>%
              summarize(Dish_Quantity=sum(dish_quantity)) %>%
              arrange(desc(Dish_Quantity))

        dish_name           Dish_Quantity
           (fctr)              (int)
 1       Chicken Kadai            11
 2     Chicken Biryani             9
 3         Dal Makhani             6
 4 Sai Bhaji and Pulav             3
 5          Tava Pulav             3
 6          Total Meal             3
 7       Chicken Kabab             2

我哪里做错了?我认为在Shiny中使用数据框的列名引用时会出现问题.



1> jeremycg..:

您遇到了SE/NSE的问题.dplyr做的事情有点不同,通常你用列的名称来调用它,它会对它进行一些处理.但是,当它与字符变量一起使用时,这种魔法就会失败,你需要依靠标准评估.

要修复它,您需要使用dplyr动词的标准评估版本(它们结束_),并在函数调用上使用lazyeval.

以下是使用内置mtcars数据集修复代码的方法:

library(lazyeval) # so we can use interpret
library(dplyr)

var1 <- "cyl"
var2 <- "mpg"
mtcars %>%
    group_by_(var1) %>% #note the _
    summarize_(Sum = interp(~sum(x), x = as.name(var2))) %>% #note the _ and the interp call
    arrange(desc(Sum))

Source: local data frame [3 x 2]

    cyl   Sum
  (dbl) (dbl)
1     4 293.3
2     8 211.4
3     6 138.2

推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有