首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将rhandsontable保存到.Rda

将rhandsontable保存到.Rda
EN

Stack Overflow用户
提问于 2020-05-14 21:04:31
回答 1查看 83关注 0票数 0

我试图生成一个简单的表,并将用户输入的值保存到Rda文件中。我收到错误了..。任何帮助都将不胜感激。

警告: Error in:$ operator对原子向量无效

代码语言:javascript
复制
library(shiny)
library(rhandsontable)
library(lubridate)

test_db <- data.frame(d = 20:52,
                      date = seq(ymd("2020/05/15"), by = "7 days", length.out = 33), 
                      i = vector("numeric", length = 33),
                      p = vector("numeric", length = 33),
                      t = vector("numeric", length = 33),
                      dm = vector("numeric", length = 33)
                      )


save(test_db, file = "test_db.Rda")


ui <- fluidPage(


  mainPanel(
    rHandsontableOutput('table'),
    actionButton("save", "Save Changes")
  )
) 


server <- function(input, output){

  data1 = load("test_db.Rda")

  output$table = renderRHandsontable(data1)



  saveData <- function(){
    finalDF <- hot_to_r( input$table )
    save(finalDF, file = "test_db.Rda")
  }

  observeEvent(input$save, saveData())



}


shinyApp(ui = ui, server = server)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-18 19:17:24

问题是您误用了load()或混淆了RData和RDSload()以无形的方式将存储在该文件中的所有对象加载到工作区中。load()的返回值如?load()所描述

所创建的对象的名称的字符向量,不可见。

因此,不指定对象本身,而只分配它们的名称!您几乎总是会更好地使用RDS文件。

这段代码能满足你的需求吗?

代码语言:javascript
复制
library(shiny)
library(rhandsontable)
library(lubridate)

test_db <- data.frame(d = 20:52,
                      date = seq(ymd("2020/05/15"), by = "7 days", length.out = 33), 
                      i = vector("numeric", length = 33),
                      p = vector("numeric", length = 33),
                      t = vector("numeric", length = 33),
                      dm = vector("numeric", length = 33)
)
saveRDS(test_db, file = "test_db.RDS")

ui <- fluidPage(
  mainPanel(
    actionButton("save", "Save Changes"),
    rHandsontableOutput('table')
  )
) 

server <- function(input, output){
  data1 <- readRDS("test_db.RDS")

  # render must contain a rhandsontable, not just the data
  my_handsomtable <- rhandsontable(data1)
  output$table  <- renderRHandsontable(my_handsomtable)

  saveData <- function(){
    finalDF <- hot_to_r(input$table)
    saveRDS(finalDF, file = "test_db.RDS")
  }

  observeEvent(input$save, saveData())
}

shinyApp(ui = ui, server = server)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61807351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档