Zastanawiam się, jak mogę utworzyć numeryczny wektor o zerowej długości w R?
Zastanawiam się, jak mogę utworzyć numeryczny wektor o zerowej długości w R?
Odpowiedzi:
Jeśli przeczytasz pomoc dotyczącą vector
(lub numeric
lub logical
lub character
lub integer
lub double
, 'surowe' lub complex
itp.), Zobaczysz, że wszystkie mają length
(lub length.out
argument, który domyślnie wynosi 0
W związku z tym
numeric()
logical()
character()
integer()
double()
raw()
complex()
vector('numeric')
vector('character')
vector('integer')
vector('double')
vector('raw')
vector('complex')
Wszystkie zwracają wektory o długości 0 odpowiednich modów atomowych.
# the following will also return objects with length 0
list()
expression()
vector('list')
vector('expression')
Załóżmy, że chcesz utworzyć wektor x, którego długość wynosi zero. Teraz niech v będzie dowolnym wektorem.
> v<-c(4,7,8)
> v
[1] 4 7 8
> x<-v[0]
> length(x)
[1] 0
To nie jest zbyt piękna odpowiedź, ale to jest to, czego używam do tworzenia wektorów o zerowej długości:
0[-1] # numeric
""[-1] # character
TRUE[-1] # logical
0L[-1] # integer
Literał to wektor o długości 1 i [-1]
usuwa pierwszy element ( w tym przypadku jedyny ) z wektora, pozostawiając wektor z zerowymi elementami.
Jako bonus, jeśli chcesz singla NA
odpowiedniego typu:
0[NA] # numeric
""[NA] # character
TRUE[NA] # logical
0L[NA] # integer
numeric(0)
.