Me pregunto, ¿cómo puedo crear un vector numérico de longitud cero en R?
Me pregunto, ¿cómo puedo crear un vector numérico de longitud cero en R?
Respuestas:
Si lees la ayuda para vector
(o numeric
o logical
o character
o integer
o double
, 'raw' o complex
etc.), verás que todos tienen un length
(o length.out
argumento 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')
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
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 NA
del tipo respectivo:
0[NA] # numeric
""[NA] # character
TRUE[NA] # logical
0L[NA] # integer
numeric(0)
.