2012-09-27 26 views

Respuesta

45

Simplemente:

x <- vector(mode="numeric", length=0) 
91

Si usted lee la ayuda de vector (o numeric o logical o character o integer o double, 'en bruto' o complex etc), entonces se verá que todos ellos tienen un length (o length.out argumento que por defecto 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 regresan 0 vectores de longitud de los modos atómicos apropiados.

# the following will also return objects with length 0 
list() 
expression() 
vector('list') 
vector('expression') 
+1

Me disculpo por el voto negativo; fue completamente accidental y solo me di cuenta de que había sucedido. No me dejará cambiar. Lo siento. –

+1

Y si el vector vacío está destinado a contener fechas, ¿qué usarías? – Zelbinian

+0

@Zelbinian Eso es una curiosidad. ¿Qué estás tratando de lograr haciendo eso? –

3

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

> v<-c(4,7,8) 
> v 
[1] 4 7 8 
> x<-v[0] 
> length(x) 
[1] 0 
+1

¿por qué está marcado? – HattrickNZ

+1

¿Por qué mi marca de posteo? –

+1

No sé lo que está sucediendo allí. Nuevamente mi respuesta es marcar. ¿¿¿Por qué??? Quiero saber la explicación. ¿Alguien puede darme respuesta por qué mi respuesta marca abajo? –

1

Ésta no es una respuesta muy bonito, pero es lo que utilizo 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 solo elemento en este caso) del vector, dejando un vector con cero elementos.

Como beneficio adicional, si quieres una sola NA del tipo respectivo:

0[NA]  # numeric 
""[NA] # character 
TRUE[NA] # logical 
0L[NA] # integer 
Cuestiones relacionadas