У меня возникли проблемы с расширением набора данных во все комбинации каждой переменной. У нас есть набор данных с номером Npoints
столбцов, каждый из которых состоит из числа iterate
X, Y указывает себя. Данные выглядят как это, когда Npoints
является 3 и iterate
является 4.Развернуть матрицу по столбцам
X1 Y1 X2 Y2 X3 Y3
20 1 30 1.5 50 0.9
21 1.1 33 1.3 45 1
19 0.9 28 1.6 53 1
25 1.2 31 1.4 55 1.2
Я хотел бы расширить этот файл данных по столбцам, чтобы применить функцию для каждой комбинации точек данных в трех основных столбцах
foo <= function(x1, y1, x2, y2) {
y2 - x2*(y2 - y1)/(x2 - x1)
}
Получившийся файл должен выглядеть следующим образом
x1 y1 x2 y2
20 1 30 1.5
21 1.1 33 1.3
19 0.9 28 1.6
25 1.2 31 1.4
20 1 50 0.9
21 1.1 45 1
19 0.9 53 1
25 1.2 55 1.2
30 1.5 50 0.9
33 1.3 45 1
28 1.6 53 1
31 1.4 55 1.2
Там, кажется, не быть разновидностью expand.grid
, что может это сделать, и мне, возможно, придется создать функцию, основанную на Npoints
и iterate
, чтобы масштабировать ее вверх или вниз в зависимости от количества точек и итераций, однако это немного сложно для меня на данном этапе, и кажется, что есть многие неэффективные способы достижения этого.
Большое спасибо за внимание.