r - 如何使变异与数字列名的反应性一起工作?
问题描述
在处理数字列的名称时,我真的不知道将 mutate 与反应性联系起来。
我有看起来像这样的数据:
df <- tibble(a=c("a", "b", "c"), `1990`=c(1,2,3), `2010`=c(3,2,1))
当我这样做时,一切看起来都很好:
p <- df %>%
mutate(newvar = `1990`)
但我想在我的 Shiny App 中使用它,newvar
以便从选择列表中分配给输入。
我为此创建了这个反应式;
selectedyear <- reactive({
input$select
})
但现在它似乎不起作用:
p <- df %>%
mutate(newvar = selectedyear())
我尝试了不同的修改,例如:
p <- df %>%
mutate(newvar = `selectedyear()`)
但似乎没有什么对我有用。
应用程序的完整代码:
library(shiny)
library(tibble)
library(dplyr)
df <- tibble(a=c("a", "b", "c"), `1990`=c(1,2,3), `2010`=c(3,2,1))
ui <- fluidPage(
selectInput("select", "Select:", c(1990, 2010)),
tableOutput("val")
)
server <- function(input, output) {
selectedyear <- reactive({
input$select
})
output$val <- renderTable({
p <- df %>%
mutate(temperature = selectedyear())
p
})
}
shinyApp(ui, server)
同样的事情,但使用字符作为输入很容易。你知道这方面的一些技巧吗?
解决方案
你可以做
output$val <- renderTable({
p <- df %>%
mutate(temperature = !!selectedyear())
p
})
推荐阅读
- c# - 无法为 Xamarin.Forms 项目命名空间创建 xmlns
- high-availability - 如果 Autosys EEM 在一侧出现故障,另一侧的 WCC 会起作用吗?
- cookies - Google 系列产品的 GDPR 合规性充分性
- python - 子列表的总和
- javascript - Facebook - 无效范围:manage_pages
- r - r - 在带有 NAs 的 df 中按等级过滤 - 不工作
- ffmpeg - ffmpeg 将三个图像组合成一个循环视频
- java - 运营链
- javascript - Mapbox 更改标记位置和颜色
- php - 使用 php 设置 cookie