将最后一个值添加到数据框的顶部。

时间:2018-09-23 12:58:09

标签: r

最后一个值是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 :(得分:2)

尝试

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列,重用将是一个向量。一列以上时跳过参数。

答案 1 :(得分:1)

另一个使用headtail的选项,其中我们rbind最后一行,然后是第一n-1行在一起。

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

     a
#5  12
#1  11
#2 243
#3 121
#4  42

答案 2 :(得分:0)

您也可以尝试

a[c(1,dim(a)[1]),] <- a[c(dim(a)[1],1),]

答案 3 :(得分:0)

我们可以在seq_len上使用索引

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