如何将值向量转换为下凹抛物线

问题描述 投票:0回答:2

我有一个值为 0-100 的向量。

values <- runif(n = 1000, min = 0, max = 100)

我想将这些值转换为下凹抛物线曲线,其中中间值(大约 50)将具有新的最大值(100),而低值(0)和高值(100)将为 0 .绘制我的原始向量与新向量基本上如下图所示。关于如何在 R 中编写这个方程有什么建议吗?

r quadratic
2个回答
1
投票

一点代数给出了一个通过点 (0, 0)、(50, 100) 和 (100, 0) 的二次方程(不是抛物线),即 -((x-50)^2)/25 + 100.

也是如此

library(tidyverse)

set.seed(123)

tibble(
  value = runif(n = 1000, min = 0, max = 100),
  new_value = -((value - 50)^2/25) + 100
) %>% 
ggplot() +
  geom_line(aes(x = value, y = new_value))

给你你想要的?


0
投票

有这样的事吗?

library(tidyverse)

df <- data.frame(n=seq(1,1000))
df$v_old <- sort(runif(1000,min=0,max=100))
df$v_new <- -1/50*(df$v_old - 50) ^ 2 + 50
df %>% ggplot(aes(x=v_old,y=v_new)) + geom_line()

© www.soinside.com 2019 - 2024. All rights reserved.