gpt4 book ai didi

r - 提交后清除文本输入

转载 作者:行者123 更新时间:2023-12-01 14:07:12 25 4
gpt4 key购买 nike

我在这里向我的数据框添加新列。
下面的代码运行良好。添加新列后,“变量名”和“公式”中的文本应为空。

你能帮帮我吗

ui.R

library(shiny)
shinyUI(pageWithSidebar(
headerPanel( "", ""),
sidebarPanel(

wellPanel(

fileInput('file', 'Select csv file', accept=c('text/csv') ),

checkboxInput('header', 'Header', TRUE),

gsub("label class=\"radio\"", "label class=\"radio inline\"",
radioButtons('sep', 'Separator', c(Comma=',', Semicolon=';', Tab='\t' )))

),

wellPanel(
checkboxInput('addcol', 'Create New Variable', FALSE),

conditionalPanel(condition="input.addcol!=0",
textInput('newvar', "Variable name","" ),
textInput('newformula', "Formula",""),
actionButton("addvar","Apply"))
)
),

mainPanel(
tabsetPanel(
tabPanel(tableOutput('contents'))
)
)

))

服务器.R

library(shiny)
shinyServer(function(input,output,session){

dataset = reactive({
inFile<-input$file
if(is.null(inFile))
return(NULL)
read.csv(inFile$datapath, header=input$header, sep=input$sep)
})


alterdata = reactive({
if(input$addcol!=0&&input$addvar!=0){
isolate({
df<-dataset()
df$Var1<-eval(parse(text=input$newformula), df)
df<-rename(df, c(Var1=input$newvar))
df
})
}
else
{
dataset()
}
})

output$contents<-renderTable({
if (is.null(input$file)) { return() }
alterdata()
})

})

最佳答案

您可以使用 updateTextInput() 来做到这一点。 这是 help on that function .

这是更新后的 server.R 的样子:

修改后的服务器.R

请注意,已将两行添加到 alterdata() react 函数。

library(shiny)
library(plyr)
shinyServer(function(input,output,session){

dataset = reactive({
inFile<-input$file
if(is.null(inFile))
return(NULL)
read.csv(inFile$datapath, header=input$header, sep=input$sep)
})


alterdata = reactive({
if(input$addcol!=0&&input$addvar!=0){
isolate({
df<-dataset()
df$Var1<-eval(parse(text=input$newformula), df)
df<-rename(df, c(Var1=input$newvar))

#add these two lines
updateTextInput(session, "newvar", value = " ")
updateTextInput(session, "newformula", value = " ")

df
})
}
else
{
dataset()
}
})


output$contents<-renderTable({
if (is.null(input$file)) { return() }
alterdata()
})

})

请注意,我必须包含 plyr 以便可以调用 rename

关于r - 提交后清除文本输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19265825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com