Eu me pergunto, como posso criar um vetor numérico de comprimento zero em R?
Eu me pergunto, como posso criar um vetor numérico de comprimento zero em R?
Respostas:
Se você ler a ajuda para vector
(ou numeric
ou logical
ou character
ou integer
ou double
, 'bruto' ou complex
etc), você verá que todos eles têm um length
(ou length.out
argumento cujo padrão é 0
Portanto
numeric()
logical()
character()
integer()
double()
raw()
complex()
vector('numeric')
vector('character')
vector('integer')
vector('double')
vector('raw')
vector('complex')
Todos retornam vetores de comprimento 0 dos modos atômicos apropriados.
# the following will also return objects with length 0
list()
expression()
vector('list')
vector('expression')
Suponha que você queira criar um vetor x cujo comprimento é zero. Agora, seja v qualquer vetor.
> v<-c(4,7,8)
> v
[1] 4 7 8
> x<-v[0]
> length(x)
[1] 0
Esta não é uma resposta muito bonita, mas é o que eu uso para criar vetores de comprimento zero:
0[-1] # numeric
""[-1] # character
TRUE[-1] # logical
0L[-1] # integer
Um literal é um vetor de comprimento 1 e [-1]
remove o primeiro elemento (o único elemento neste caso) do vetor, deixando um vetor com zero elementos.
Como um bônus, se você quiser um NA
do respectivo tipo:
0[NA] # numeric
""[NA] # character
TRUE[NA] # logical
0L[NA] # integer
numeric(0)
.