我有一个包含2列的数据框:
a<-c(1, 3, 4, 6, 8.7, 9, 10, 12, 19.3, 20)
b<-c(10, 30, 40, 60, 87, 90, 100, 120, 190, 200)
df<-data.frame(a=a, b=b)
> df
a b
1 1.0 10
2 3.0 30
3 4.0 40
4 6.0 60
5 8.7 87
6 9.0 90
7 10.0 100
8 12.0 120
9 19.3 190
10 20.0 200
这将给出该图:
我的目标是首先在1到20的一列中包含值,并且对于每个值b都应计算为最可能的值(以获得在a的所有20类中正好包含b的20个值的近似图)
期望值:
a<-c(1:20)
b<-c(100,110,120,130,92,60,59,58,44,103,....)
答案 0 :(得分:2)
我认为您正在寻找线性插值。 approx
函数可用于此目的:
as.data.frame(approx(df$a, df$b, xout = c(1:20)))
# x y
#1 1 10.0000
#2 2 20.0000
#3 3 30.0000
#4 4 40.0000
#5 5 50.0000
#6 6 60.0000
#7 7 70.0000
#8 8 80.0000
#9 9 90.0000
#10 10 100.0000
#11 11 110.0000
#12 12 120.0000
#13 13 129.5890
#14 14 139.1781
#15 15 148.7671
#16 16 158.3562
#17 17 167.9452
#18 18 177.5342
#19 19 187.1233
#20 20 200.0000