Изменение порядка строк в матрице / области данных

Мне нужно изменить / инвертировать строки в моем кадре данных, не переносить данные, а перемещать нижнюю строку вверх и так далее. Если фрейм данных был:

1 2 3 4 5 6 7 8 9 

Мне нужно конвертировать в

 7 8 9 4 5 6 1 2 3 

Я читал о sort() но я не думаю, что это то, что мне нужно, или я не могу найти способ.

Там, вероятно, более элегантные способы, но это работает:

 m <- matrix(1:9, ncol=3, byrow=TRUE) # m[rev(seq_len(nrow(m))), ] # Initial answer m[nrow(m):1, ] [,1] [,2] [,3] [1,] 7 8 9 [2,] 4 5 6 [3,] 1 2 3 

Это работает, потому что вы индексируете матрицу с инвертированной последовательностью целых чисел в качестве индекса строки. nrow(m):1 приводит к 3 2 1 .

Вы можете изменить порядок файла data.frame с dplyr пакета dplyr :

 iris %>% arrange(-row_number()) 

Или без использования оператора трубы, выполняя

 arrange(iris, -row_number()) 

Я бы поменял строки на индекс, начинающийся с количества строк, вдоль этой строки

 revdata <- thedata[dim(thedata)[1L]:1,] 

Мы можем изменить порядок row.names (только для data.frame):

 # create data.frame m <- matrix(1:9, ncol=3, byrow=TRUE) df_m <- data.frame(m) #reverse df_m[rev(rownames(df_m)), ] # X1 X2 X3 # 3 7 8 9 # 2 4 5 6 # 1 1 2 3 

Veeery поздно, но это, кажется, работает быстро, не нуждается в дополнительных пакетах и ​​просто:

 for(i in 1:ncol(matrix)) {matrix[,i] = rev(matrix[,i])} 

Я предполагаю, что для частого использования можно было бы сделать из нее функцию. Протестировано с помощью R v = 3.3.1.

Я думаю, что это самый простой способ:

 MyMatrix = matrix(1:20, ncol = 2) MyMatrix[ nrow(MyMatrix):1, ] 

Если вы хотите изменить столбцы, просто выполните

 MyMatrix[ , ncol(MyMatrix):1 ] 
Interesting Posts

Как передать свойства -D системы во время тестирования на Eclipse?

Как создать действительный случайный MAC-адрес с оболочкой bash

Как восстановить отсутствующий беспроводной адаптер в Windows 10

Как ссылаться на ресурс CSS / JS / image в шаблоне Facelets?

Неразрушимо Преобразование автономного динамического диска на базовый диск с помощью инструмента testdisk

Каково использование «абстрактного переопределения» в C #?

Проводной беспроводной модем в Linux

Как я могу автоматизировать диалоговое окно «Сохранить как» в IE11 с помощью VBA?

Как подождать в пакетном скрипте?

Сумма, если ТОЛЬКО все ячейки имеют значение?

Почему мой диск работает на 99%?

Как получить уникальный идентификатор компьютера в Java (например, идентификатор диска или идентификатор материнской платы)?

Как использовать UIProgressView при загрузке UIWebView?

Как украсть штрихи от UIScrollView?

как создать APK и отдельные библиотеки, которые приложение загружает динамически

Давайте будем гением компьютера.