Как случайным образом построить матрицу на основе элементов списка в r - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть два больших фрейма данных с популяционными данными для конкретного организма, которые различаются у разных поколений для разных видов лечения.Я намерен построить матрицы, которые позволят мне рассчитать темп прироста населения, используя данные из обоих этих фреймов данных.Мне нужно случайным образом объединить данные из одного фрейма данных с данными из второго на основе каждой комбинации лечения поколения 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 Treatment.

Для верхнего ряда матриц я использую одну из~ 40 значений для каждой комбинации Generation x 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

, которая также разбивается следующим образом:

EPR.list <- split(EPRtot1, f = list(EPRtot1$Generation,
                                   EPRtot1$Treatment))

Я хотел бы иметь возможность индексировать каждый кадр данныхиз списков таким образом, чтобы одна из комбинаций 12 Generation x Treatment в первом кадре данных соответствовала одному из значений 40 Generation x Treatment во втором кадре данных.

Anyпомощь очень ценится.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...