小编Mar*_*tin的帖子

使用 vroom 在 R 中部分读取非常大的 csv.gz

我有一个 csv.gz 文件(据我所知)压缩前的大小为 70GB。我的机器有 50GB 的 RAM,所以无论如何我永远无法在 R 中打开它。

例如,我可以按如下方式加载前 10m 行:

library(vroom)

df <- vroom("HUGE.csv.gz", delim= ",", n_max = 10^7)
Run Code Online (Sandbox Code Playgroud)

对于我必须做的事情,可以一次加载 10m 行,执行我的操作,然后继续接下来的 10m 行。我可以循环执行此操作。

因此,我正在尝试skip论证。

df <- vroom("HUGE.csv.gz", delim= ",", n_max = 10^7, skip = 10^7)
Run Code Online (Sandbox Code Playgroud)

这会导致错误:

Error: The size of the connection buffer (131072) was not large enough
to fit a complete line:
  * Increase it by setting `Sys.setenv("VROOM_CONNECTION_SIZE")`
Run Code Online (Sandbox Code Playgroud)

我增加了这个Sys.setenv("VROOM_CONNECTION_SIZE" = 131072*1000),但是,错误仍然存​​在。

这个问题有方法解决吗?

编辑:我发现随机访问 gzip 压缩的 csv (csv.gz) 是不可能的。我们必须从头开始。可能最简单的方法是解压并保存,然后跳过就可以了。

csv r vroom

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

shinymanager 通过单击按钮注销

我希望当用户单击按钮时出现注销和身份验证屏幕。

credentials <- data.frame(
  user = "x", 
  password = "x"
)

library(shiny)
library(shinymanager)

ui <- fluidPage(
  tags$h2("My secure application"),
  actionButton("action_logout", "Logout!")
)

ui <- secure_app(ui)

server <- function(input, output, session) {

  res_auth <- secure_server(
    check_credentials = check_credentials(credentials)
  )

  observeEvent(input$action_logout, {
    # logout
  }) 
}

shinyApp(ui, server)
Run Code Online (Sandbox Code Playgroud)

我发现shinymanager的右下角默认的注销按钮有id = ".shinymanager_logout",所以我尝试用 来调用它session$sendCustomMessage(".shinymanager_logout", 1)。这或许是一种非常幼稚的方式。

如何使用自定义注销按钮注销用户?

r shiny

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

标签 统计

r ×2

csv ×1

shiny ×1

vroom ×1