в R считайте файл во фрейм данных, в котором одна переменная указывает длину списка другой переменной - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть файл, который структурирован следующим образом:

1 4 3 20 25 21 25 12 15 14 29 17 19 24 34 92 30
2 4 3 76 71 56 94 79 20  8  7 56 81 52 26 55 24
3 4 5 94 73  3 50 44 76 38 12 54 52  3 12 92 95  2 56 78 87
4 4 5 96  40  22  72  65   2  14 100   4  40  24  24  88  40  41   6  24  72
5 2 5 63  74  79  28 100  40  91  81  51  28  25  24  45  15

Где:
Столбец 1 = отметка времени,
Столбец 2 = N1 = количество хищников в это время,
Столбец 3 = N2 = количество жертв,
следующие столбцы N1 * 2 показывают координаты x и y для N1 хищников, а
следующие столбцы N2 * 2 показывают координаты x и y длядобыча N2.

Например, на первом временном шаге 1 есть 4 хищника и 3 жертвы.{X, y} координаты для 4 хищников: {20 25}, {21 25}, {12 15}, {14 29} и {17, 19}, {24, 34}, {92, 30}за 3 добычу.Количество хищников и жертв варьируется от момента к моменту.Например, на третьем временном шаге популяция добычи выросла с 3 до 5.

После прочтения файла я хотел бы структурировать фрейм данных примерно так:

  trialNum numPredators numPrey     predatorList            preyList
1        1            4       3     c(20, 25....            c(17, 19....
2        2            4       3     c(76, 71....            c(56, 81....

и predatorList для второго испытания, df $ predatorList [[2]], будут выглядеть так:

[[1]]
[1] 76 71

[[2]]
[1] 56 94

[[3]]
[1] 79 20

[[4]]
[1] 8 7

с координатами {x, y} хищников, связанными вместе.Между прочим, я создал пример структуры, которую я хочу, с помощью этих команд:

df<-data.frame(data.frame(trialNum=1,numPredators=4,numPrey=3,
    predatorList=I(list(list(c(20,25),c(21,25),c(12,15),c(14,29)))),
    preyList=I(list(list(c(17,19),c(24,34),c(92,30))))))

df<-rbind(df,data.frame(trialNum=2,numPredators=4,numPrey=3,
    predatorList=I(list(list(c(76,71),c(56,94),c(79,20),c(8,7)))),
    preyList=I(list(list(c(56, 81),c(52, 26),c(55, 24))))))

[используя функцию I () для сохранения нужной мне структуры списка, вместо того, чтобы выравнивать ее через подпрограммы dataFrame R].Тогда, например, df $ predatorList [[2]] [3] [[1]] [2] даст значение для 2-й отметки времени и 3-й координаты хищника y (2-я)

ТакКак мне прочитать данные из файла с динамически изменяющимся числом переменных с двумя переменными, описывающими, как эти переменные структурированы, для создания этого dataFrame?

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