使用来自 plot/datapoints 的斜率计算给定 X 的 Y 值
calculating Y value given X using slope from plot/datapoints
我正在尝试找出最简单的方法。
我可以有各种 data-table 长度,我想用连接数据点的斜率自动填充缺失值。我只是不确定以编程方式执行此操作的最简单方法。
我想我可以做一些像这样的事情,但我又不知道如何应用它,或者是否有一个简单的 loop/dplyr/ 其他功能可以解决这个问题。
基本上 如果有一个线图,当线穿过那个 X/index 值时,每个点在哪里?这就是我想要的。
lm(y~index)$coef[[2]] * index + lm(y~index)$coef[[1]]
两个例子:
df = data.frame(index = 1:6, y = c(10,NA,20,NA,NA,2)
df2 = data.frame(index = 1:8, y=c(NA,NA,2,NA,NA,NA,NA,18)
solutions:
df = data.frame(index = 1:6, y = c(10,15, 20,14,8,2)#slope of 5 and then -6
df2 = data.frame(index = 1:8, y=c(NA,NA,2,5.2,8.4,11.6,14.8,18) #slope of 3.2
您想使用 approx
和参数 n
来指定将发生线性插值的数据点数。正如您所做的那样,它要求至少有两个 (x,y) 对的完整情况。
data.frame(approx(df, n = nrow(df)))
x y
1 1 10
2 2 15
3 3 20
4 4 14
5 5 8
6 6 2
我正在尝试找出最简单的方法。 我可以有各种 data-table 长度,我想用连接数据点的斜率自动填充缺失值。我只是不确定以编程方式执行此操作的最简单方法。
我想我可以做一些像这样的事情,但我又不知道如何应用它,或者是否有一个简单的 loop/dplyr/ 其他功能可以解决这个问题。
基本上 如果有一个线图,当线穿过那个 X/index 值时,每个点在哪里?这就是我想要的。
lm(y~index)$coef[[2]] * index + lm(y~index)$coef[[1]]
两个例子:
df = data.frame(index = 1:6, y = c(10,NA,20,NA,NA,2)
df2 = data.frame(index = 1:8, y=c(NA,NA,2,NA,NA,NA,NA,18)
solutions:
df = data.frame(index = 1:6, y = c(10,15, 20,14,8,2)#slope of 5 and then -6
df2 = data.frame(index = 1:8, y=c(NA,NA,2,5.2,8.4,11.6,14.8,18) #slope of 3.2
您想使用 approx
和参数 n
来指定将发生线性插值的数据点数。正如您所做的那样,它要求至少有两个 (x,y) 对的完整情况。
data.frame(approx(df, n = nrow(df)))
x y
1 1 10
2 2 15
3 3 20
4 4 14
5 5 8
6 6 2