добавление последнего значения в верхнюю часть фрейма данных. - PullRequest
0 голосов
/ 23 сентября 2018

последние значения 12, я хочу переместить последнее к первому значению.это означает, что я хочу добавить фрейм данных и переместить последний в верхнюю часть фрейма данных, одновременно перемещая более ранние значения вниз.пожалуйста, проверьте ожидаемый результат.

R код:

a <- c(11,243,121,42,12)
a <- data.frame(a)

    a
1  11
2 243
3 121
4  42
5  12

ожидаемый результат:

a
12
11
243
121
42

Ответы [ 4 ]

0 голосов
/ 23 сентября 2018

Мы могли бы использовать индексирование с seq_len

a[c(nrow(a), seq_len(nrow(a)-1)),, drop = FALSE]
#    a
#5  12
#1  11
#2 243
#3 121
#4  42
0 голосов
/ 23 сентября 2018

Другая опция, использующая head и tail, где мы rbind последняя строка, а затем первая n-1 строка вместе.

rbind(tail(a, 1), head(a,-1))

     a
#5  12
#1  11
#2 243
#3 121
#4  42
0 голосов
/ 23 сентября 2018

Вы также можете попробовать это

a[c(1,dim(a)[1]),] <- a[c(dim(a)[1],1),]
0 голосов
/ 23 сентября 2018

Попробуйте

a[c(nrow(a), 1:(nrow(a) - 1)), , drop = FALSE]
#    a
#5  12
#1  11
#2 243
#3 121
#4  42

Мы переупорядочиваем строки в соответствии с этим вектором, т.е. последняя строка идет первой, затем первой, затем второй строкой и т. Д.

c(nrow(a), 1:(nrow(a) - 1)
#[1] 5 1 2 3 4

drop = FALSE необходимо(здесь), потому что a содержит только 1 столбец и reuslt будет вектором.Пропустите аргумент, если у вас более одного столбца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...