如何在全局R环境中加载动态数据帧



我正在使用闪亮的java脚本开发用于决策树的应用程序。

我有一个动态树的结构,用户可以在其中创建新的分支和节点,当用户完成树的构建时,他可以按下按钮并将树的结构导出到txt文件中。

我想知道是否有一种方法可以避免按钮"导出到数据集">,而不是这样,在R全局环境中加载树,就像动态数据帧一样。

导出树的Java脚本函数

/*
* Print out CSV of tree: node names
*/
function printCSV() {   
var csv = "";

if (root.children) {

root.children.forEach(function (d) {
csv = csv + getCSVstring(d, "-", "", 0);
})
}
var hiddenElement = document.createElement('a');
hiddenElement.href = 'data:attachment/text,' + encodeURI(csv);
hiddenElement.target = '_blank';
hiddenElement.download = 'TreeDataSet.txt';
hiddenElement.click();
}

HTML代码

<button id="exportToMatrix" onclick="printCSV();">Export To DataSet</button>

app.R

library(shiny)
server = function(input, output, session){

x <- output$contents <- renderText({    
data2 <<- read.table("exportToMatrix")
assign(data2,envir=.GlobalEnv)
print(summary(data))
})

}
# Run the application 
shinyApp(ui = htmlTemplate("www/Tree.html"), server)

谢谢!

在您的桌面上,assign可以创建从Shiny App到.GlobalEnv的变量,请参阅以下示例:

library(shiny)
ui <- fluidPage(
actionButton("do", "Click Me")
)
server <- function(input, output, session) {
counter <- reactiveVal(0)
observeEvent(input$do, {
counter(counter()+1)
cat('Saving object ', counter(),'n')
assign(paste0("test",counter()), counter(),.GlobalEnv)

})
}
shinyApp(ui, server)

每次单击后,都会在.GlobalEnv:中创建一个新变量

Saving object  1 
Saving object  2 
Saving object  3 
Saving object  4 

> ls()
[1] "server" "test1"  "test2"  "test3"  "test4"  "ui" 

最新更新