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


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')

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


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

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.