Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使Shiny的输入$var可用于dplyr::summary()_R_Shiny_Dplyr_Markdown - Fatal编程技术网

如何使Shiny的输入$var可用于dplyr::summary()

如何使Shiny的输入$var可用于dplyr::summary(),r,shiny,dplyr,markdown,R,Shiny,Dplyr,Markdown,我有以下资料: 那么,如何使输入$col_id可用于汇总? 正确的方法是什么 非光泽上下文结果是: > diamonds %>% filter(cut=="Good") %>% select(price) %>% summarise(mean = mean(price), sd=sd(price), n=n()) # A tibble: 1 × 3 mean sd n <dbl> <dbl> <i

我有以下资料:

那么,如何使输入$col_id可用于汇总? 正确的方法是什么

非光泽上下文结果是:

> diamonds %>% filter(cut=="Good") %>% select(price)  %>% summarise(mean = mean(price), sd=sd(price), n=n())
# A tibble: 1 × 3
      mean      sd     n
     <dbl>   <dbl> <int>
1 3928.864 3681.59  4906

使用dplyr v0.5.0.9002的开发版本,您可以使用rlang::sym将字符串转换为符号,然后使用unquote操作符!!或UQ来指代dplyr动词中的变量

library(dplyr)

var1 <- "Good" # replace with input$op_id
var2 <- rlang::sym("price") # replace with input$col_id

diamonds %>%
  filter(cut == var1) %>%
  select_at(vars(!!var2)) %>%
  summarise_at(vars(!!var2), funs(mean, sd, n()))
其中:

## A tibble: 1 × 3
#      mean      sd     n
#     <dbl>   <dbl> <int>
#1 3928.864 3681.59  4906
## A tibble: 1 × 6
#  price_mean depth_mean price_sd depth_sd price_n depth_n
#       <dbl>      <dbl>    <dbl>    <dbl>   <int>   <int>
#1   3928.864   62.36588  3681.59 2.169374    4906    4906

有关更多信息,请查看渐晕图的示例

您是否尝试过使用Summary_uu函数而不是Summary函数,以便让它接受文本字符串输入?@NickCriswell:尝试过,也会出现同样的问题。请尝试dat%>%selectone of Input$col_id%>%Summary_mean=lazyeval::interp~meanx,x=as.name输入$col\u id谢谢变量的含义!!var2,我在哪里可以找到关于它的文档/解释?看一看小插曲:最后,为什么var2只是将字符串转换为符号。或者,您可以使用as.name。从文档中可以看出:“名称”也称为“符号”,是指通过名称而不是绑定到该名称的对象(如果有)的值来引用R对象的一种方式。
## A tibble: 1 × 3
#      mean      sd     n
#     <dbl>   <dbl> <int>
#1 3928.864 3681.59  4906
var1 <- "Good" 
var2 <- rlang::syms(c("price", "depth")) 

diamonds %>%
  filter(cut == var1) %>%
  select_at(vars(UQS(var2))) %>%
  summarise_at(vars(UQS(var2)), funs(mean, sd, n()))
## A tibble: 1 × 6
#  price_mean depth_mean price_sd depth_sd price_n depth_n
#       <dbl>      <dbl>    <dbl>    <dbl>   <int>   <int>
#1   3928.864   62.36588  3681.59 2.169374    4906    4906