Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Change column name in R shiny

I have problem with change name of column in dataset df1(). I prepare selectInput (column name to rename) and textInput (target column name). But my version doesn’t work (code below). Better said, it works, but only with "static" new colname, when i use textInput it thorws me an error unexpected ‘=’. Can somebody help me ?

SERVER:
  output$to_rename<- renderUI({
    choice <- names(df1())
    selectInput('to_rename', label = 'Choose column to rename: ', choices = choice)
  })
  
  output$target_rename<- renderUI({
    textInput('target_rename', label = 'Write new column name: ', value = "Your_new_colname")
  })
  
  observeEvent(input$ren_col, {
    df1(df1() %>% rename(
      input$target_rename = input$to_rename   #when I use: new_name = input$to_rename it works 
#and selected column will be rename to "new_name"
    ))
  })

##############################################################################

UI:
uiOutput("to_rename"),
uiOutput("target_rename"),
actionButton("ren_col", "Rename"),

>Solution :

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

You can use !! for programmatic access to variable names.

Reprex:

## mimic shiny's `input$` variable:
input <- list(oldname="cyl", newname="newcyl")
head(mtcars) %>%
  rename(!!input$newname := !!input$oldname)
#                    mpg newcyl disp  hp drat    wt  qsec vs am gear carb
# Mazda RX4         21.0      6  160 110 3.90 2.620 16.46  0  1    4    4
# Mazda RX4 Wag     21.0      6  160 110 3.90 2.875 17.02  0  1    4    4
# Datsun 710        22.8      4  108  93 3.85 2.320 18.61  1  1    4    1
# Hornet 4 Drive    21.4      6  258 110 3.08 3.215 19.44  1  0    3    1
# Hornet Sportabout 18.7      8  360 175 3.15 3.440 17.02  0  0    3    2
# Valiant           18.1      6  225 105 2.76 3.460 20.22  1  0    3    1
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading