Como criar um vetor numérico de comprimento zero em R

92

Eu me pergunto, como posso criar um vetor numérico de comprimento zero em R?

Surjya Narayana Padhi
fonte
22
Eu acredito que sim numeric(0).
Blue Magister
Não esqueça de aceitar a resposta se gostou!
Ander Biguri

Respostas:

112

Se você ler a ajuda para vector(ou numericou logicalou characterou integerou double, 'bruto' ou complexetc), você verá que todos eles têm um length(ou length.outargumento 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')
mnel
fonte
1
Peço desculpas pelo voto negativo; foi completamente acidental e eu apenas percebi que tinha acontecido. Não vai me deixar mudar. Desculpe.
Stuart R. Jefferys
1
E se o vetor vazio se destina a conter datas, o que você usaria?
Zelbinian
@Zelbinian Isso é uma curiosidade. O que você está tentando alcançar fazendo isso?
BroVic,
57

Simplesmente:

x <- vector(mode="numeric", length=0)
srctaha
fonte
4

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
Md. Sahidul Islam
fonte
1
Eu não sei o que está acontecendo lá. Mais uma vez, minha resposta é anotar. Por quê??? Eu quero saber a explicação. Alguém pode me responder por que minha resposta foi reduzida?
Md. Sahidul Islam
Você está medindo o comprimento do elemento vetorial.
upInCloud
2
Comprimento é a prova de que o vetor numérico (aqui x) tem vetor de comprimento zero. E o vetor x é criado a partir de qualquer outro vetor. Portanto, x é o vetor desejado de comprimento zero. Além disso, você deve verificar o título do problema claramente. @ShaaradDalvi
Md. Sahidul Islam
3

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 NAdo respectivo tipo:

0[NA]     # numeric
""[NA]    # character
TRUE[NA]  # logical
0L[NA]    # integer
Aaron McDaid
fonte