最后一个值是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
答案 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)
另一个使用head
和tail
的选项,其中我们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