r - 使用 ggvis & shiny 中的输入选择修剪数据框

标签 r shiny ggvis

我正在尝试添加一个输入 slider ,它将修剪用于创建 ggvis 对象的数据框,如下所示:

runApp(list(
  ui = bootstrapPage(
    ggvisOutput("p"),
    uiOutput("p_ui")
  ),
  server = function(..., session) {
    for_plot[age>input_slider(0, 300, value = 0, step = .1, label = "Trim first values") ] %>% ggvis(x = ~age, y = ~sum) %>% 
       layer_points() %>%
      bind_shiny("p", "p_ui")

  }
)) 

我收到以下错误:

Listening on http://127.0.0.1:4088
Error in age > input_slider(0, 300, value = 0, step = 0.1, label = "Trim first values") : 
  comparison (6) is possible only for atomic and list types

数据:

> dput(for_plot)
structure(list(age = -1:137, sum = c(2.9127625202, 1136.15788767452, 
273.533113629, 182.577023, 259.43127, 252.508971, 275.684614, 
215.032984, 175.90742, 148.352428, 113.003169, 161.357073209, 
115.466020271, 156.797340424, 175.038016749, 176.488390764, 91.7729895453, 
91.7239276033, 98.9969827211, 102.388825709, 163.942421421, 118.938171624, 
134.030560948, 145.528713073, 84.0943510378, 115.900420968, 160.417479634, 
141.631984678, 168.467217905, 181.655436653, 148.207568964, 124.859941782, 
183.997252898, 156.513051044, 188.82588873, 137.168202013, 123.305076295, 
218.081338481, 141.886229086, 93.1080326721, 135.859208991, 227.694944957, 
144.246245253, 97.2852532409, 63.379350963, 100.227810825, 127.057637341, 
138.673543227, 122.797269725, 127.785499103, 78.9781895255, 94.6973510316, 
81.2852298166, 77.0061306202, 101.976840318, 83.4868494245, 68.6421595439, 
119.399666, 61.027956, 90.133668, 88.624048, 58.100079, 46.529205, 
70.834879, 57.513635, 65.62522, 59.748113, 51.254763, 60.01, 
60.041919, 105.772536, 85.564368969, 89.6614592424, 42.607413704, 
52.3980349542, 62.0695635701, 85.9011843079, 64.7162277064, 56.1468546477, 
46.9516467187, 56.0426098096, 130.354148072, 165.365221108, 69.6146107006, 
40.1394275162, 77.6468523819, 60.8783613406, 62.6635625966, 105.87122289, 
55.6055641606, 61.8159765316, 72.1644279856, 74.4649577482, 80.1998824221, 
45.9350257767, 103.843842017, 98.9039021267, 59.1849148128, 67.5026269702, 
52.0332749562, 216.69104441, 85.9505852324, 104.008136809, 200.005094773, 
102.962733793, 56.2068235785, 41.0352422907, 51.7020950197, 33.2931629372, 
65.704230091, 79.6758468335, 79.4543446244, 103.260073438, 76.7873225476, 
37.6227208976, 40.6325385694, 70.9006911716, 51.4076995898, 38.1693658093, 
109.9354882, 95.8973745099, 19.0864056748, 69.3897454729, 61.7374836761, 
66.5707198551, 63.8689019338, 42.7001939824, 14.5081003557, 40.127732022, 
65.8789453554, 95.1309843037, 8.6965147506, 34.625986323, 44.5887916163, 
14.4472523862, 35.7203407751, 10.0911065622, 30.1301061724, 12.9129026453
)), .Names = c("age", "sum"), row.names = c(NA, -139L), class = c("data.table", 
"data.frame"), .internal.selfref = <pointer: 0x0000000001390788>)

感谢您的帮助!

最佳答案

上面的 for_plot 过滤中存在一些语法错误。还使用了 Shiny 的 slider 。

library(shiny)
library(ggvis)

for_plot <- structure(
  list(age = -1:137, 
       sum = c(2.9127625202, 1136.15788767452, 
               273.533113629, 182.577023, 259.43127, 252.508971, 275.684614, 
               215.032984, 175.90742, 148.352428, 113.003169, 161.357073209, 
               115.466020271, 156.797340424, 175.038016749, 176.488390764, 91.7729895453, 
               91.7239276033, 98.9969827211, 102.388825709, 163.942421421, 118.938171624, 
               134.030560948, 145.528713073, 84.0943510378, 115.900420968, 160.417479634, 
               141.631984678, 168.467217905, 181.655436653, 148.207568964, 124.859941782, 
               183.997252898, 156.513051044, 188.82588873, 137.168202013, 123.305076295, 
               218.081338481, 141.886229086, 93.1080326721, 135.859208991, 227.694944957, 
               144.246245253, 97.2852532409, 63.379350963, 100.227810825, 127.057637341, 
               138.673543227, 122.797269725, 127.785499103, 78.9781895255, 94.6973510316, 
               81.2852298166, 77.0061306202, 101.976840318, 83.4868494245, 68.6421595439, 
               119.399666, 61.027956, 90.133668, 88.624048, 58.100079, 46.529205, 
               70.834879, 57.513635, 65.62522, 59.748113, 51.254763, 60.01, 
               60.041919, 105.772536, 85.564368969, 89.6614592424, 42.607413704, 
               52.3980349542, 62.0695635701, 85.9011843079, 64.7162277064, 56.1468546477, 
               46.9516467187, 56.0426098096, 130.354148072, 165.365221108, 69.6146107006, 
               40.1394275162, 77.6468523819, 60.8783613406, 62.6635625966, 105.87122289, 
               55.6055641606, 61.8159765316, 72.1644279856, 74.4649577482, 80.1998824221, 
               45.9350257767, 103.843842017, 98.9039021267, 59.1849148128, 67.5026269702, 
               52.0332749562, 216.69104441, 85.9505852324, 104.008136809, 200.005094773, 
               102.962733793, 56.2068235785, 41.0352422907, 51.7020950197, 33.2931629372, 
               65.704230091, 79.6758468335, 79.4543446244, 103.260073438, 76.7873225476, 
               37.6227208976, 40.6325385694, 70.9006911716, 51.4076995898, 38.1693658093, 
               109.9354882, 95.8973745099, 19.0864056748, 69.3897454729, 61.7374836761, 
               66.5707198551, 63.8689019338, 42.7001939824, 14.5081003557, 40.127732022, 
               65.8789453554, 95.1309843037, 8.6965147506, 34.625986323, 44.5887916163, 
               14.4472523862, 35.7203407751, 10.0911065622, 30.1301061724, 12.9129026453
       )), .Names = c("age", "sum"), row.names = c(NA, -139L), 
  class = c("data.table",  "data.frame")
)

runApp(list(
  ui = bootstrapPage(
    ggvisOutput("p"),
    sliderInput("agetrimlim", "Trim first values:", min = 0, max = 300, value = 0, step= 1)
  ),
  server = function(input,output, session) {
    output$p <- renderGvis({
      input$agetrimlim
      for_plot[for_plot$age>input$agetrimlim,] %>% ggvis(x = ~age, y = ~sum)  %>% bind_shiny('p')
    })
  }
)) 

产量:

enter image description here

关于r - 使用 ggvis & shiny 中的输入选择修剪数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34649559/

相关文章:

r - R 中的 mlogit.data - 'row.names<-.data.frame` (`*tmp*` 中的错误,值 = c("

r - 访问刚刚创建的变量

r - 当选择不同的 tabItem 时, Shiny 的仪表板侧边栏会发生变化

css - 可写的 selectInput 选择器

r - 通过内部标记为簇着色

r - Shiny 中的动态 ggvis 对象

regex - 使用正则表达式提取R中特定长度的单词

r - 对 r 中的行进行分组、比较和计数

r - 在 Y 轴上绘制 2 个变量,在 R 中使用 ggvis

鼠标悬停时 Rstudio Shiny 的 ggvis 工具提示