我收集的数据看起来像这样:
wl Spec.94
299.784 57.95
300.151 57.18
300.517 88.18
300.884 18.71
301.252 100.90
301.617 127.06
301.983 75.02
302.349 54.20
302.715 50.93
303.082 50.43
然而,我用来分析数据的程序只能处理wl的整数。我继承了一个excel表,它对这些数据进行插值并生成以下数据:
wl Spec
300 41.03
301 61.77
302 51.84
我真的不知道这个电子表格是如何工作的,但它自动填充的列标题是"目标Wl"、"最近的较小索引"、"最接近的较小W1"、"上限Wl","偏移"、"低端值"、"高端值"one_answers"插值"。
我需要能够在我的r代码中复制这个过程,使分析具有可复制性,但我不知道从哪里开始。如何对r中的数据进行插值,以获得wl中整数值处Spec.95的值?
您可以对round
和range
进行seq
影响,并用它馈送approx
。
wl <- do.call(seq, as.list(round(range(dat$wl))))
cbind(wl, Spec.94=approx(dat$wl, dat$Spec, wl)$y)
# wl Spec
# [1,] 300 57.49681
# [2,] 301 44.61772
# [3,] 302 74.05295
# [4,] 303 50.54172
然而,这些值有些不同,我不确定您的特定excel代码是如何插值41.03
值的,该值应该在57.95
和57.18
之间。也许你能弄明白?