2013-09-21 17 views
35

Załóżmy, że mam wektor v, w jaki sposób mogę uzyskać jego odwrotność, tj. Ostatni element?Jak zmienić kolejność wektorów?

Pierwszą rzeczą, która przychodzi do mnie v[length(v):1], ale zwraca NA gdy v jest numeric(0), natomiast użytkownik zwykle oczekiwać niczego sortowania zwraca nic, nie sortowania nic zwraca brak rzeczy - to robi dużą różnicę w moim przypadku.

Odpowiedz

56

Jesteś prawie tam, rev robi to, co trzeba:

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 - tylko wyjaśnić, co dzieje się z PO, w przypadku gdy 'v <- c()': 'długości (v): 1' to '0: 1'. Operator '[' ignoruje '0' i zwraca' v [1] ', tzn.' NA'. Gdyby nie "rev", coś solidnego i wzdłuż linii OP byłoby "v [seq (to = 1, by = -1, length.out = length (v))]". – flodel

Powiązane problemy