Следующий код объединяет вектор с фреймом данных:
newrow = c(1:4)
existingDF = rbind(existingDF,newrow)
Однако этот код всегда вставляет новую строку в конце кадра данных.
Как я могу вставить строку в указанной точке в кадре данных? Например, предположим, что в фрейме данных 20 строк, как вставить новую строку между строками 10 и 11?
existingDF = rbind(existingDF[1:10,],newrow,existingDF[-(1:10),])
newdataframe[nrow(newdataframe)+1,] <- existingdataframe[i,]
Ответы:
Вот решение, которое позволяет избежать (часто медленного)
rbind
вызова:Если скорость менее важна, чем четкость, то решение @ Simon работает хорошо:
(Обратите внимание, мы индексируем по-
r
разному).И, наконец, отметки:
Ориентиры
Как @MatthewDowle всегда указывает на меня, необходимо проверить критерии масштабирования по мере увеличения размера проблемы. Вот и мы тогда:
Решение @ Roland достаточно хорошо масштабируется, даже с призывом к
rbind
:На графике в линейном масштабе:
И масштаб лог-лог:
источник
df
с колонками,a,b,c,d
и я хочу добавить строку1,2,3,4
. Как я могу это сделать?источник
rbind
, но я заинтригован.Вы должны попробовать пакет dplyr
Вывод
В отличие от использования функции rbind
Вывод
Есть некоторый прирост производительности.
источник
например, вы хотите добавить строки переменной 2 в переменную 1 данных с именем «ребер», просто сделайте это так
источник