我有两个大型数据框,其中包含特定生物的种群数据,不同治疗的不同世代之间存在差异。我打算构建矩阵,使我能够使用这两个数据框中的数据来计算人口增长率。我需要根据每一代x处理组合将一个数据帧中的数据与第二个数据帧中的数据随机组合。来自df1的数据将用作每个矩阵的对角线,并由〜12个重复项组成。来自df2的值将作为每个矩阵的第一行插入,由约40个重复项组成。如何有条件地将数据组合在一起,以便对于每代x处理,我都有唯一的矩阵组合?
有4种治疗选择和6代选择。 lx_diag
值将被设置为每个矩阵的对角线。
到目前为止,我已经成功地将数据分为各个列表,每个列表按Generation
x Treatment
分组:
## The data frame for
>SurvTot1
Generation unique Treatment Temp pH Rep Beak time nx lx lx_diag
1 0 0_1 1 18 8.2 1 1 0 19 1.0000000 1.0000000
2 0 0_1 1 18 8.2 1 1 2 19 1.0000000 1.0000000
3 0 0_1 1 18 8.2 1 1 4 19 1.0000000 1.0000000
4 0 0_1 1 18 8.2 1 1 6 19 1.0000000 1.0000000
5 0 0_1 1 18 8.2 1 1 8 19 1.0000000 1.0000000
6 0 0_1 1 18 8.2 1 1 10 19 1.0000000 1.0000000
7 0 0_1 1 18 8.2 1 1 12 17 0.8947368 0.8947368
8 0 0_1 1 18 8.2 1 1 14 17 0.8947368 1.0000000
9 0 0_1 1 18 8.2 1 2 0 25 1.0000000 1.0000000
10 0 0_1 1 18 8.2 1 2 2 25 1.0000000 1.0000000
11 0 0_1 1 18 8.2 1 2 4 25 1.0000000 1.0000000
12 0 0_1 1 18 8.2 1 2 6 22 0.8800000 0.8800000
13 0 0_1 1 18 8.2 1 2 8 21 0.8400000 0.9545455
14 0 0_1 1 18 8.2 1 2 10 21 0.8400000 1.0000000
15 0 0_1 1 18 8.2 1 2 12 20 0.8000000 0.9523810
16 0 0_1 1 18 8.2 1 2 14 10 0.4000000 0.5000000
17 0 0_1 1 18 8.2 1 3 0 25 1.0000000 1.0000000
18 0 0_1 1 18 8.2 1 3 2 25 1.0000000 1.0000000
19 0 0_1 1 18 8.2 1 3 4 25 1.0000000 1.0000000
20 0 0_1 1 18 8.2 1 3 6 24 0.9600000 0.9600000
Survival.list <- split(SurvTot1, f = list(SurvTot1$Generation,
SurvTot1$Treatment))
我可以进一步对数据进行子集并按每个Rep
x Beak
组合将其分组,但这只会进一步分离它,并且似乎更难以为每个Generation
x {{1 }}组合。
对于矩阵的第一行,我为每种Treatment
x Generation
组合使用〜40个值之一:
Treatment
也是如此:
## Top row data
> EPRtot1
Generation Treatment sex.spec.fecundity
1: 0 1 14.000
2: 0 1 18.250
3: 0 1 23.030
4: 0 1 17.325
5: 0 1 16.500
---
1217: 25 2 14.750
1218: 25 2 0.000
1219: 25 2 10.000
1220: 25 2 8.750
1221: 25 2 0.000
我希望能够为列表中的每个数据帧建立索引,以使第一个数据帧中的12 EPR.list <- split(EPRtot1, f = list(EPRtot1$Generation,
EPRtot1$Treatment))
x Generation
组合之一与40 {{1 }} x Treatment
在第二个数据帧中的值。
非常感谢您的帮助。