基于-r或python之前和之后的行中的值计算单元格

基于-r或python之前和之后的行中的值计算单元格,python,r,Python,R,我收集玻璃瓶中的温室气体样本,在气相色谱仪中进行分析。在每次分析中,使用已知浓度的标准气体作为计算气体样品实际浓度的基础。标准气体(STD)分散在现场采集的样品中。请参见布局示例: 为了计算每个小瓶的最终气体浓度,我需要有问题的浓度前后标准气体的平均值 例如,使用以下数据:为了计算第5-19行中样本的新值(“CO2浓度”将写入新列),我需要对样本本身之前(第1-4行)和之后(第20-23行)的“STD”样本的“CO2面积”值取平均值,然后将该平均值乘以“CO2面积”对于每个样品,将该值写入新列

我收集玻璃瓶中的温室气体样本,在气相色谱仪中进行分析。在每次分析中,使用已知浓度的标准气体作为计算气体样品实际浓度的基础。标准气体(STD)分散在现场采集的样品中。请参见布局示例:

为了计算每个小瓶的最终气体浓度,我需要有问题的浓度前后标准气体的平均值

例如,使用以下数据:为了计算第5-19行中样本的新值(“CO2浓度”将写入新列),我需要对样本本身之前(第1-4行)和之后(第20-23行)的“STD”样本的“CO2面积”值取平均值,然后将该平均值乘以“CO2面积”对于每个样品,将该值写入新列“CO2浓度”

然后对于下一块样本(第24-38行),我需要将每个“CO2面积”值乘以它们之前(第20-23行)和之后(第39-42行)的STD样本的平均值

挑战在于标准气体(STD)和样品的布局不同。我可能有一些结果,有四个标准气体,然后是10个样本,然后是四个标准气体,然后是15个样本。总之,我需要计算数千个样本的结果。我一直在使用excel,但这是一场噩梦


我是编程新手,不能理解这一点。我使用r和python。非常感谢您的帮助

您可以使用
dput
R
中显示类似的示例吗?
pos chamber time    sample id   CO2 area    CO2 conc
1           STD 3800.9564
2           STD 3798.167
3           STD 3790.841
4           STD 3798.7983
5   B1  0   B1-300-0    5809.8816
6   B1  5   B1-300-5    6533.1388
7   B1  10  B1-300-10   7290.8798
8   B2  0   B2-300-0    5585.4023
9   B2  5   B2-300-5    5756.92
10  B2  10  B2-300-10   5613.1656
11  B3  0   B3-300-0    5481.443
12  B3  5   B3-300-5    5603.2589
13  B3  10  B3-300-10   5603.402
14  B4  0   B4-300-0    5338.9765
15  B4  5   B4-300-5    5532.6854
16  B4  10  B4-300-10   5648.308
17  B5  0   B5-300-0    5678.463
18  B5  5   B5-300-5    5722.0628
19  B5  10  B5-300-10   5970.686
20          STD 3780.3707
21          STD 3782.0296
22          STD 3779.7178
23          STD 3766.577
24  B6  0   B6-300-0    9242.1142
25  B6  5   B6-300-5    8976.261
26  B6  10  B6-300-10   4260.6401
27  B7  0   B7-300-0    5491.4754
28  B7  5   B7-300-5    5539.7924
29  B7  10  B7-300-10   5504.2488
30  B8  0   B8-300-0    5558.7016
31  B8  5   B8-300-5    5714.8874
32  B8  10  B8-300-10   5521.0464
33  B9  0   B9-300-0    5767.7574
34  B9  5   B9-300-5    5695.7332
35  B9  10  B9-300-10   5687.0254
36  B10 0   B10-300-0   5337.9296
37  B10 5   B10-300-5   5422.4003
38  B10 10  B10-300-10  5382.5028
39          STD 3758.6318
40          STD 3755.0939
41          STD 3780.8918
42          STD 3772.1658