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

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

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

    Что случилось с моей функцией для загрузки нескольких CSV-файлов в единый dataframe в R с помощью rbind?

    Ожидание в блоке catch

    Как уведомить о намерениях уведомления, а не делать новые намерения?

    Обнаружение отключения клиента TCP

    Где журналы событий беспроводного соединения Windows 7?

    Как торрент-клиенты собирают и хранят куски?

    Как импортировать VMware Workstation 7 VM в Sun VirtualBox (последняя версия)?

    Изображение и развертывание новых компьютеров

    Как настроить log4j для регистрации различных уровней журнала для разных файлов для одного и того же регистратора

    Кабели HDMI для VGA действительно работают так, как рекламируются?

    Android: java.lang.OutOfMemoryError: не удалось выделить выделение байтов 23970828 с 2097152 бесплатными байтами и 2 МБ до тех пор, пока OOM

    Как целенаправленно блокировать файл?

    Как импортировать, экспортировать и редактировать закладки PDF-файла?

    Как создать RecyclerView с несколькими типами просмотра?

    Почему я могу получить доступ к своим личным переменным «другого» объекта напрямую, по методу «равный» (Object o)

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