如何解决如何在Global R环境中加载动态数据帧?
我正在使用闪亮的Java脚本开发决策树应用程序。
我有一个动态树的结构,用户可以在其中创建新的分支和节点,当用户完成树的结构时,他可以按一个按钮并将树的结构导出到txt文件中。 / p>
我想知道是否有一种方法可以避免使用“导出到数据集”按钮,而不是使用这种方法,将树加载到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();
}
<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()),.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"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。