簡體   English   中英

使用ggvis和shiny中的輸入選擇修剪數據框

[英]Trim data frame using input select in ggvis & shiny

我正在嘗試添加一個輸入滑塊,它將修剪用於創建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過濾中存在一些語法錯誤。 也使用閃亮的滑塊代替。

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')
    })
  }
)) 

產量:

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM