【问题标题】:Interpolate contents of one dataset based on another dataset and merge in R - uneven values基于另一个数据集插入一个数据集的内容并在 R 中合并 - 不均匀值
【发布时间】:2023-03-15 00:10:02
【问题描述】:

我有两个数据集(A 用于年龄数据集,TE 用于浓度数据集),我的目标是绘制浓度 ~ 年龄,但我不知道如何合并和扩展年龄数据以适应更大的数据库含有浓度。这些是我的两个数据集的示例:

  1. (A) 在这种情况下,距离是 25 微米的倍数,是沿载玻片的距离。每张幻灯片的总距离在幻灯片之间有所不同,具体取决于每张幻灯片上项目的侧面。年龄是每张幻灯片的累积年龄(因此所有内容都嵌套在幻灯片中)。
Slide Age Distance
1 7 25
1 14 50
1 22 75
1 28 100
2 8 25
2 15 50
  1. (TE) 距离是连续的,是沿着幻灯片的距离,但更精细的比例和一个数据点与下一个数据点之间的距离并不一致。
Slide Concentration Distance
1 7800 0.57
1 7895 0.61
1 6547 1.22
1 6589 1.73
1 6887 4.89
1 6342 5.50
2 8560 35.50
2 8657 36.11
2 8500 38.43
2 8352 39.17
2 8334 41.01
2 7456 42.84
2 8912 56.92

我需要一种方法来合并两者,这样我才能做到: ggplot(TE, aes(x = Age, y = Concentration, group = Slide))+ 几何(线)

...通过对 TE 数据库中的每个距离进行插值,扩展年龄数据以适应 TE 数据集中的连续距离尺度。像这样的:

Slide Concentration Distance Age
1 7800 0.57 0.3
1 7895 0.61 0.4
1 6547 1.22 0.8
1 6589 1.73 1.2
1 6887 4.89 4.3
1 6342 5.50 5.5
2 8560 35.50 7.3
2 8657 36.11 7.4
2 8500 38.43 7.6
2 8352 39.17 7.7
2 8334 41.01 7.8
2 7456 42.84 7.9
2 8912 56.92 8.4

有什么想法吗?

附言抱歉,如果这不清楚,如果重现性不够,我可以根据需要进行更新

【问题讨论】:

  • 您希望合并后的数据集是什么样的?您想在表 A 中插入年龄以匹配表 TE 中的距离,还是通过表 A 中的距离对表 TE 中的浓度进行分组?举个例子。
  • 是的,我需要插入表 A 中的年龄以匹配表 TE 中的距离,所以我需要 TE 数据库中的所有数据(大约 260,000 个条目)

标签: r database merge interpolation intervals


【解决方案1】:

根据表 A 中幻灯片 1 的数据,年龄和距离之间似乎存在线性关系。您可以: 1) split() Table A 滑动; B) 使用lm() 获得每张幻灯片的年龄对距离的线性模型; C) 对每个线性模型和表 TE 中的距离数据使用predict()。这将为您提供表 TE 中每个浓度的线性插值年龄。然后可以结合插值的年龄和浓度数据进行绘图。

【讨论】:

  • 不,年龄和距离之间没有线性关系,年龄每 25 微米的距离在 4 到 10 之间变化,这让事情变得更加复杂!
  • 那么听起来好像您需要进行非线性插值,并且为年龄和距离之间的关系找到合适的模型是您问题的核心。也许你有一个理论模型可以使用。如果没有,您可以使用smooth.spline()predict.smooth.spline() 而不是lm()predict()
猜你喜欢
  • 2021-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-25
  • 1970-01-01
  • 2020-07-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多