用于计算 y 值的 R ggvis 交互式滑块(例如用于背景校正)

R ggvis interactive slider for calculating y values (e.g. for background correction)

我想使用 ggvis 滑块直观地对我的数据进行背景校正:

library("dplyr")
library("ggvis")
library("lubridate")
data <- data.frame(timestamp = Sys.time() - hours(10:1),
                   signal = rnorm(10),
                   temperature = rnorm(10))

mySlider <- input_slider(0, 2, value = 1, step = 0.1, label = "T-correction")
data %>% 
  ggvis(~timestamp, ~signal) %>%
  layer_paths() %>%
  layer_paths(x = ~timestamp, y = ~temperature, stroke := "red") %>%
  mutate(new_signal = signal - mySlider * temperature) %>%  # here, I would like to add in the slider
  layer_paths(x = ~timestamp, y = ~new_signal, stroke := "darkgreen")

我得到一个 Error in function () : non-numeric argument to binary operator。 ggvis 能做到这一点还是我做错了什么?

您可以使用 input_slidermap 参数来做到这一点。但是看来您必须显式调用 data$signaldata$temperature

# specify slider
mySlider <- input_slider(0, 2, value = 1, step = 0.1, label = "T-correction", 
                         map = function(x)  data$signal - x * data$temperature)
# plotting
data %>% 
  ggvis(~timestamp, ~signal) %>%
  layer_paths() %>%
  layer_paths(x = ~timestamp, y = ~temperature, stroke := "red") %>%
  layer_paths(x = ~timestamp, y = mySlider, stroke = "darkgreen")