简体   繁体   English

更改列名称 R shiny

[英]Change column name in R shiny

I have problem with change name of column in dataset df1().我在更改数据集 df1() 中的列名称时遇到问题。 I prepare selectInput (column name to rename) and textInput (target column name).我准备了selectInput (要重命名的列名)和textInput (目标列名)。 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 '=' .更好地说,它有效,但仅适用于“静态”新列名,当我使用 textInput 时,它会给我一个意外的错误 '=' 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"),

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM