使用输入滑块仅更改特定的 y 值
Changing only certain y value with an input slider
我想用交互式 ggvis
绘图显示离群值对估计的 OLS 回归线的影响。为此,我想要一个滑块,它只更新我的数据框的一个 y 值,例如 df$y[10] + 1
、df$y[10] + 2
等等。我怎样才能做到这一点?
一些可以使用的数据:
set.seed(123)
x <- sort(runif(15, min = 30, max = 70 ))
y <- rnorm(15 , mean = 200, sd = 50)
df <- data.frame(x, y)
我当前的静态ggvis代码:
Library(ggvis)
df %>%
ggvis(x = ~x, y = ~y) %>%
layer_points() %>%
layer_model_predictions(model = "lm", formula = y ~ x)
可以将 dplyr
功能与 ggvis 结合起来。
下面link描述了它是如何工作的:
Applying a dplyr verb to a ggvis object creates a reactive
transformation: whenever the underlying data changes the
transformation will be recomputed.
最后我使用了带有自写函数的 mutate outlier
。
重要的一点是将反应式滑块输入包装在 eval()
中。我确信仍有改进的潜力,但这可能是一个很好的起点。
library(ggvis)
library(dplyr)
set.seed(123)
x <- sort(runif(15, min = 30, max = 70 ))
y <- rnorm(15 , mean = 200, sd = 50)
df <- data.frame(y, x)
v <- input_slider(0, 250, value = 0, step = 25, animate = TRUE)
outlier <- function(y, v) y + c(rep(0, 14), v)
df %>%
ggvis(x = ~x, y = ~y) %>%
mutate(y = outlier(y, eval(v))) %>%
layer_points() %>%
layer_model_predictions(model = "lm", formula = y ~ x)
我想用交互式 ggvis
绘图显示离群值对估计的 OLS 回归线的影响。为此,我想要一个滑块,它只更新我的数据框的一个 y 值,例如 df$y[10] + 1
、df$y[10] + 2
等等。我怎样才能做到这一点?
一些可以使用的数据:
set.seed(123)
x <- sort(runif(15, min = 30, max = 70 ))
y <- rnorm(15 , mean = 200, sd = 50)
df <- data.frame(x, y)
我当前的静态ggvis代码:
Library(ggvis)
df %>%
ggvis(x = ~x, y = ~y) %>%
layer_points() %>%
layer_model_predictions(model = "lm", formula = y ~ x)
可以将 dplyr
功能与 ggvis 结合起来。
下面link描述了它是如何工作的:
Applying a dplyr verb to a ggvis object creates a reactive transformation: whenever the underlying data changes the transformation will be recomputed.
最后我使用了带有自写函数的 mutate outlier
。
重要的一点是将反应式滑块输入包装在 eval()
中。我确信仍有改进的潜力,但这可能是一个很好的起点。
library(ggvis)
library(dplyr)
set.seed(123)
x <- sort(runif(15, min = 30, max = 70 ))
y <- rnorm(15 , mean = 200, sd = 50)
df <- data.frame(y, x)
v <- input_slider(0, 250, value = 0, step = 25, animate = TRUE)
outlier <- function(y, v) y + c(rep(0, 14), v)
df %>%
ggvis(x = ~x, y = ~y) %>%
mutate(y = outlier(y, eval(v))) %>%
layer_points() %>%
layer_model_predictions(model = "lm", formula = y ~ x)