相关疑难解决方法(0)

在dplyr :: filter中将字符串作为变量名传递

我正在使用mtcars数据集来说明我的问题.

例如,我想将数据子集到4缸汽车.我可以这样做:

mtcars %>% filter(cyl == 4)
Run Code Online (Sandbox Code Playgroud)

在我的工作中,我需要传递一个字符串变量作为我的列名.例如:

var <- 'cyl'
mtcars %>% filter(var == 4)
Run Code Online (Sandbox Code Playgroud)

我也做了:

mtcars %>% filter(!!var == 4)
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,我都得到了空数据帧.

r dplyr

27
推荐指数
4
解决办法
1万
查看次数

列名存储在字符串中时的整洁评估

我需要通过逻辑列过滤表(或者更确切地说,通过它的否定),但列的名称可能会有所不同.我事先知道他们的名字很容易:

tb = tibble(
  id = 1:4, 
  col1 = c(TRUE, TRUE, FALSE, FALSE), 
  col2 = c(TRUE, FALSE, TRUE, FALSE)
)

tb
## # A tibble: 4 x 3
##      id  col1  col2
##   <int> <lgl> <lgl>
## 1     1  TRUE  TRUE
## 2     2  TRUE FALSE
## 3     3 FALSE  TRUE
## 4     4 FALSE FALSE

colname = quo(col1)

tb %>% 
  filter(!!colname) # rows where col1 is true
## # A tibble: 2 x 3
##      id  col1  col2
## …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse rlang

5
推荐指数
1
解决办法
537
查看次数

在闪亮的应用程序中过滤数据,但在更新表时将值保留在 selectInput 中

我有一个闪亮的应用程序,要求用户上传的文件(有数据的表格文件),然后将其渲染此文件到表中,用户可以筛选基于一些值numericInputselectInputtextAreaInput。用户必须选择过滤器,然后按下按钮才能过滤表。

没有顺序过滤,即用户可以填充所有过滤器或仅填充一个。每次用户选择过滤器时,其他过滤器的值都会更新(selectInput输入),这就是我想要的行为。但是,一旦按下过滤器按钮,我就看不到以前的选择,也无法重置过滤器。

我想要实现的是在更新过滤器时保持实际行为,即,一旦我选择一个过滤器并按下过滤器按钮,其他selectInput选择就会自动更新,我想跟踪过滤器选择,因此用户可以看到他/她选择的过滤器。这正是我所期待的,但每次我按下按钮过滤器时,似乎过滤器选项卡会再次呈现。

这是我的应用程序,

library(shiny)
library(vroom)
library(dplyr)
library(shinycssloaders)
library(shinydashboard)
library(shinydashboardPlus)
library(tidyr)


header <- dashboardHeader()

sidebar <- dashboardSidebar(width = 450,

  sidebarMenu(id="tabs", 
    menuItem("Filtros", tabName="filtros", icon = icon("bar-chart-o")),
      uiOutput("filtros")

  )
)

body <- dashboardBody(

  tabItems(
    tabItem(tabName="filtros",
          fluidRow(
          column(12,dataTableOutput("tabla_julio") %>% withSpinner(color="#0dc5c1"))
        )
    )  
   )
 )

ui <- dashboardPagePlus(enable_preloader = TRUE, sidebar_fullCollapse = TRUE, header, sidebar, body)

server = function(input, output, session) {

    #Create the choices for sample input …
Run Code Online (Sandbox Code Playgroud)

r shiny

5
推荐指数
1
解决办法
1463
查看次数

R lazyeval:将参数传递给 dplyr::filter

我认为这个问题有多种其他变化(例如:herehere ,也许here) - 甚至可能是某个地方的答案。

如何为过滤器函数提供参数。

library(dplyr)
library(lazyeval)
set.seed(10)
data <- data.frame(a=sample(1:10, 100, T))
Run Code Online (Sandbox Code Playgroud)

如果我需要计算数字 1 到 10 的出现次数并显示计数,比如 1、2 和 3,我会这样做:

data %>% 
  group_by(a) %>% 
  summarise(n = n()) %>% 
  filter(a < 4)
Run Code Online (Sandbox Code Playgroud)

给出:

# A tibble: 3 × 2
      a     n
  <int> <int>
1     1    11
2     2     8
3     3    16
Run Code Online (Sandbox Code Playgroud)

现在,我怎样才能把它放到一个函数中?这grp是分组变量。

   fun <- function(d, grp, no){
      d %>% 
        group_by_(grp) %>% 
        summarise_(n = interp(~ n() )) %>%
        filter_( grp < no)
        # …
Run Code Online (Sandbox Code Playgroud)

parameters r filter dplyr lazyeval

3
推荐指数
1
解决办法
1640
查看次数

字符串作为函数参数r

我正在使用dplyr并创建代码来计算用ggplot绘制的新数据.

我想用这段代码创建一个函数.它应该采用dplyr操作的数据框列的名称.但是,尝试使用列名不起作用.请考虑以下最小例子:

df <- data.frame(A = seq(-5, 5, 1), B = seq(0,10,1))

library(dplyr)
foo <- function (x) {
         df %>%
            filter(x < 1)
}

foo(B)

Error in filter_impl(.data, dots(...), environment()) : 
  object 'B' not found 
Run Code Online (Sandbox Code Playgroud)

是否有任何解决方案可以使用列的名称作为函数参数?

string r function character dplyr

0
推荐指数
1
解决办法
2757
查看次数

使用变量中的值作为参数的Filter()

我希望能够filter(),其中参数值是已经定义的变量。

因此,例如,使用可重现的mtcars数据集:

library(tidyverse)
df <- mtcars
head(df)
#>                    mpg cyl disp  hp drat    wt  qsec vs am gear carb
#> Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
#> Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
#> Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
#> Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3 …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse

0
推荐指数
1
解决办法
64
查看次数

标签 统计

r ×6

dplyr ×5

tidyverse ×2

character ×1

filter ×1

function ×1

lazyeval ×1

parameters ×1

rlang ×1

shiny ×1

string ×1