2013-09-21 93 views
35

假设我有一个向量v,我该如何获得其反向,即最后一个元素第一个?如何颠倒矢量的顺序?

是来找我的第一件事是v[length(v):1],但它返回NA时vnumeric(0),而用户通常期望排序没有返回任何内容,不排序没有返回不可用的东西 - 它确实使我的情况有很大的不同。

回答

56

你是几乎没有,rev做你需要什么:

rev.default 
# function (x) 
# if (length(x)) x[length(x):1L] else x 
# <bytecode: 0x0b5c6184> 
# <environment: namespace:base> 

rev(1:3) 
# [1] 3 2 1 
rev(numeric(0)) 
# numeric(0) 
+3

+1 - 只是解释什么是与案件的OP其中'v <发生 - )C(':'长度(V ):1'是'0:1'。 '['运算符忽略'0'并返回'v [1]',即'NA'。如果它不是'rev',那么强健的和沿着OP的线将会是'v [seq(to = 1,by = -1,length.out = length(v))]''。 – flodel