Краткое описание: как я могу добавить строки m
в мой фрейм данных m X n
, где каждая новая строка вставлена после каждой существующей строки? Я по существу копирую существующую строку, но сделаю замену на одну переменную.Как добавить строки в кадр данных R каждую другую строку?
Подробнее: применительно к another question, я думаю, что могу делать то, что хочу, с помощью функции rgl segment3d. У меня есть набор точек x, y, z, но это всего лишь одна конечная точка набора сегментов линии. Другая конечная точка находится на расстоянии в несколько метров от размера Z, заданная как четвертая переменная: X, Y, Z, Z_Length; в моей терминологии это восток, север, высота, длина.
В соответствии с документами rgl «Точки принимаются парами по сегментам3d». Итак, мне кажется, мне нужно изменить свой фрейм данных, чтобы иметь дополнительные записи в каждой второй строке с измененной переменной Z (путем вычитания Z_Length из Z). Визуально, она должна идти от этого:
+-------+---------+----------+-----------+---------+
| Label | easting | northing | elevation | length |
+-------+---------+----------+-----------+---------+
| 47063 | 554952 | 5804714 | 32.68 | 619.25 |
| 47311 | 492126 | 5730703 | 10.40 | 1773.00 |
+-------+---------+----------+-----------+---------+
к этому:
+-------+---------+----------+-----------+---------+
| Label | easting | northing | elevation | length |
+-------+---------+----------+-----------+---------+
| 47063 | 554952 | 5804714 | 32.68 | 619.25 |
| 47063 | 554952 | 5804714 | -586.57 | 619.25 |
| 47311 | 492126 | 5730703 | 10.40 | 1773.00 |
| 47311 | 492126 | 5730703 | -1762.26 | 1773.00 |
+-------+---------+----------+-----------+---------+
Образец данных в связанном вопросе имеется.
Я думал, что мне нужно будет использовать что-то вроде своего решения, но кронекер - это не то, что я ожидал ... можете ли вы объяснить, как он делает то, что он делает? –
Посмотрите, что «kronecker (1: 5, c (0,5),« + »)' дает вам. Для каждого элемента в первом векторе он добавляет ('FUN =" + "') все элементы во втором векторе, поэтому вы получаете: '1 + 0, 1 + 5, 2 + 0, 2 + 5 и т. Д. '. Конечно, есть другие способы получить этот вектор индексов, но я считаю это интересным. – flodel
Это дико, мне это нравится. Ваш мозг работает замечательно. –