我正在使用R闪亮的应用程序,因为我有两个下拉框。第一个下拉列表中填充了分类变量,第二个下拉列表中填充了数值变量。然后我在分类变量上应用groupby。 这是我的代码。
float matrix[3][10][10];
int i, j, k, row[2], col[2];
for(i=0; i<2; i++){
printf("Enter the number of rows and columns of matrix %d:\n", i+1);
scanf("%d %d", &row[i], &col[i]);
for(j=0; j<row[i]; j++)
for(k=0; k<col[i]; k++)
scanf("%f", &matrix[i][j][k]);
}
它给了我以下输出。
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))
这是dish_quantity变量的总和。但我想要这样的东西。
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
我在哪里做错了?我认为在Shiny中使用数据框的列名引用时会出现问题。
答案 0 :(得分:7)
您遇到了SE/NSE的问题。 >>> df
value1 value2 value3
0 1 9 5
1 5 NaN 4
2 9 55 NaN
3 NaN 4 9
>>> df.mean(axis=1)
0 5.0
1 4.5
2 32.0
3 6.5
dtype: float64
做的事情有点不同,通常你用列的名称来调用它,它会对它进行一些处理。但是,当它与字符变量一起使用时,这种魔法就会失败,你需要依靠标准评估。
要修复它,您需要使用dplyr
动词的标准评估版本(它们以dplyr
结尾),并在函数调用中使用lazyeval。
以下是使用内置mtcars数据集的代码修复:
_