Cómo crear un vector numérico de longitud cero en R

92

Me pregunto, ¿cómo puedo crear un vector numérico de longitud cero en R?

Surjya Narayana Padhi
fuente
22
Yo creo que lo es numeric(0).
Blue Magister
¡No olvides aceptar la respuesta si te gustó!
Ander Biguri

Respuestas:

112

Si lees la ayuda para vector(o numerico logicalo charactero integero double, 'raw' o complexetc.), verás que todos tienen un length(o length.outargumento cuyo valor predeterminado es 0

Por lo tanto

numeric()
logical()
character()
integer()
double()
raw()
complex() 
vector('numeric')
vector('character')
vector('integer')
vector('double')
vector('raw')
vector('complex')

Todos devuelven vectores de longitud 0 de los modos atómicos apropiados.

# the following will also return objects with length 0
list()
expression()
vector('list')
vector('expression')
mnel
fuente
1
Pido disculpas por el voto negativo; fue completamente accidental y solo me di cuenta de que había sucedido. No me dejará cambiar. Lo siento.
Stuart R. Jefferys
1
Y si el vector vacío está destinado a contener fechas, ¿qué usarías?
Zelbinian
@Zelbinian Eso es una curiosidad. ¿Qué estás tratando de lograr al hacer eso?
BroVic
57

Simplemente:

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

Suponga que desea crear un vector x cuya longitud sea cero. Ahora sea v cualquier vector.

> v<-c(4,7,8)
> v
[1] 4 7 8
> x<-v[0]
> length(x)
[1] 0
Md. Sahidul Islam
fuente
1
No sé qué está pasando ahí. Nuevamente mi respuesta es rebajar. ¿¿¿Por qué??? Quiero saber una explicación. ¿Alguien puede darme una respuesta por qué mi respuesta está abajo?
Md. Sahidul Islam
Estás tomando la longitud del elemento vectorial.
upInCloud
2
La longitud es el probado que, el vector numérico (aquí x) tiene un vector de longitud cero. Y el vector x se crea a partir de cualquier otro vector. Entonces x es el vector deseado de longitud cero. ¿También debería comprobar claramente el título del problema? @ShaaradDalvi
Md. Sahidul Islam
3

Esta no es una respuesta muy hermosa, pero es lo que uso para crear vectores de longitud cero:

0[-1]     # numeric
""[-1]    # character
TRUE[-1]  # logical
0L[-1]    # integer

Un literal es un vector de longitud 1 y [-1]elimina el primer elemento (el único elemento en este caso) del vector, dejando un vector con cero elementos.

Como beneficio adicional, si quieres uno NAdel tipo respectivo:

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