小编pol*_*lTo的帖子

在一个闪亮的应用程序中的"read_excel"

我有一个使用read.xlsx包中的功能的Shiny应用程序xlsx.所有工作正常,但我想更改为read_excelreadxl,希望这将是更快,能够应付大容量文件.

你的部分:

fileInput("inputFile","Upload file...")
Run Code Online (Sandbox Code Playgroud)

服务器部分:

  data <- reactive({
    inFile <- input$inputFile
    if (is.null(inFile)) { return(NULL) }    
    dataFile <- read_excel(inFile$datapath,sheet=1)
    return(dataFile)
  })
Run Code Online (Sandbox Code Playgroud)

我收到"未知格式"错误.

inFile $ datapath是"
/tmp/.../60974676c7287e913d1c0dc5/0"inFile $ type是"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"

问题1:有没有办法告诉read_excel它是xlsx类型的文件?
问题2:是否可以控制上传文件的存储位置?

r xlsx shiny

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

链接时R data.table keyby多列

我想创建一个只有两列的新数据表,并使用这两列作为键将其与另一个表连接.我能做到这一点:

a.dt <- data.table(x = 1:3, y = 2:4)
setkey(a.dt,x,y)
key(a.dt)
# [1] "x" "y"
# ...(join)
Run Code Online (Sandbox Code Playgroud)

但我不想使用setkey- 我想立即链接到连接,即在创建表之后我想要keyby两个新变量.由于我不清楚的原因,我收到此错误:

a.dt <- data.table(x = 1:3, y = 2:4)[, .SD, keyby = .(x,y)]
# Error in jsub[[ii]] : attempt to select less than one element
Run Code Online (Sandbox Code Playgroud)

这是我丑陋的解决方法

a.dt <- data.table(x = 1:3, y = 2:4, z = 3:5)[, .SD, keyby = .(x,y)][,z := NULL]
key(a.dt)
# [1] "x" "y"
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么我不能keyby同时变量?我做的事情从根本上是愚蠢的吗?

编辑:为完整性添加会话信息

sessionInfo()
# R version 3.2.1 (2015-06-18) …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

标签 统计

r ×2

data.table ×1

shiny ×1

xlsx ×1