我从this question读了这个尝试过的解决方案,但没有用。
CherryPickPalette是一个R函数,可以接收2到3个调色板,允许用户选择自己的颜色,将结果保存到文件中,将结果扫描到变量中。
不幸的是,我无法读取变量。
整个R脚本为here
当我执行脚本并退出时,它会显示它读取的项目数(基于用户选择)
> CherryPickPalette("BiryaniRice","Kulfi","Haveli2")
Listening on http://127.0.0.1:4346
Read 7 items
但是,如果我输入customcolors
,我会收到错误
> customcolors
Error: object 'customcolors' not found
以下是功能...请指导。
CherryPickPalette <- function (name, name2=NULL, name3=NULL){
# error checking
if (interactive()){
colorfile <- paste(getwd(),"colorfile.txt",sep="/")
if (!file.exists(colorfile)){
file.create(colorfile)
}
shinyApp(
ui = fluidPage(
titlePanel("Cherry Pick Your Own Palette!"),
sidebarPanel (hr(),
selectInput('col', 'Options', new_pal, multiple=TRUE, selectize=FALSE, size = 15)
),
mainPanel(
h5('Your custom colors',style = "font-weight: bold;"),
fluidRow(column(12,verbatimTextOutput("col"))))
),
server = function(input,output,session){
outuputdata<- reactive({
input$col
})
output$col <- {
renderPrint(outuputdata())
}
session$onSessionEnded(function(){
message <- paste(isolate(outuputdata())," ")
cat(message,file=colorfile, append=TRUE)
customcolors <- scan(file=colorfile," ")
# trying to return customcolors outside of shiny
stopApp(customcolors)
customcolors
######
})
}
)
}
}
答案 0 :(得分:2)
运行并关闭应用后:
mapping
或者运行应用程序:
customcolors <- scan("colorfile.txt", character())
customcolors
# [1] "#a96337" "#f0ecb0" "#4a4000" "#001a24"