如何使用分离株使数据框架在r光上无反应



我已经查看了这个问题,但似乎仍然无法使我的代码工作

如何在闪亮/r

中"保存"反应性数据框

我正在尝试在CSV文件中读取闪亮的应用程序,然后将CSV文件中的每个单元格成为一个可在应用程序中使用的变量。这可能吗?我一直在阅读有关使用分离株()的信息,但它并没有为我锻炼。每次我从文件中的信息中进行变量时,都有一个错误,说由于文件是反应性而无法制作的。我一直在文件中读取的代码如下。关于如何从CSV内容创建变量的任何帮助将非常有用。

filedata <- reactive({
  inFile <- input$datafile
  if (is.null(inFile))
    return(NULL)
  data <- read.csv(inFile$datapath)
}) 
isolate(filedata())

为了使此工作起作用,我相信该文件必须是非反应性的。

谢谢!

isolate在这里对您无济于事。它的目的是使(反应部分)反应对输入的变化反应。

从您的描述中,您似乎想拥有可以以某种方式进行突变的数据?如果您只需要在不更改细胞的情况下访问细胞,那么只要您在反应性环境中(即渲染,观察,反应性,可能更多),就不需要做任何事情,只需做

filedata()[row, column] 

访问您的手机。例如,如果您想在第一行中具有第三个单元格值的反应性,则可以做

thirdCellInFirstRow <- reactive(filedata()[row, column])

然后使用thirdCellInFirstRow()在另一个反应性中访问该值。

如果您需要能够更改数据集中的数据,例如单元格的内容,则需要使用其他结构。一种可能性是reactiveValuesreactiveVal。在您的服务器函数中创建一个空的reactiveValues

storedData <- reactiveValues

然后,您可以将数据框架存储在此处,例如,通过在您的Filedata反应性中使用此框架:

storedData$df <- read.csv(inFile$datapath) 

现在您可以从其他反应性环境中访问storedData$df的数据集并将数据读取或写入数据。

最新更新