Comment créer un vecteur numérique de longueur nulle dans R

92

Je me demande, comment puis-je créer un vecteur numérique de longueur nulle dans R?

Surjya Narayana Padhi
la source
22
Je le crois numeric(0).
Blue Magister
N'oubliez pas d'accepter la réponse si vous l'avez aimé!
Ander Biguri

Réponses:

112

Si vous lisez l'aide pour vector(ou numericou logicalou characterou integerou double, 'raw' ou complexetc), vous verrez qu'ils ont tous un length(ou un length.outargument qui vaut par défaut 0

Par conséquent

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

Tous renvoient des vecteurs de longueur 0 des modes atomiques appropriés.

# the following will also return objects with length 0
list()
expression()
vector('list')
vector('expression')
mnel
la source
1
Je m'excuse pour le vote négatif; c'était complètement accidentel et j'ai juste remarqué que c'était arrivé. Cela ne me laissera pas changer. Désolé.
Stuart R. Jefferys
1
Et si le vecteur vide est destiné à contenir des dates, qu'utiliseriez-vous?
Zelbinian
@Zelbinian C'est une curiosité. Qu'essayez-vous de réaliser en faisant cela?
BroVic
57

Simplement:

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

Supposons que vous vouliez créer un vecteur x dont la longueur est nulle. Soit maintenant v n'importe quel vecteur.

> v<-c(4,7,8)
> v
[1] 4 7 8
> x<-v[0]
> length(x)
[1] 0
Md. Sahidul Islam
la source
1
Je ne sais pas ce qui se passe là-bas. Encore une fois, ma réponse est notée. Pourquoi??? Je veux savoir une explication. Quelqu'un peut-il me dire pourquoi ma réponse est notée?
Md. Sahidul Islam
Vous prenez la longueur de l'élément vectoriel.
upInCloud
2
La longueur est la preuve que le vecteur numérique (ici x) a un vecteur de longueur nulle. Et le vecteur x est créé à partir de n'importe quel autre vecteur. Donc x est le vecteur souhaité de longueur nulle. Vous devez également vérifier clairement l'en-tête du problème? @ShaaradDalvi
Md. Sahidul Islam
3

Ce n'est pas une très belle réponse, mais c'est ce que j'utilise pour créer des vecteurs de longueur nulle:

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

Un littéral est un vecteur de longueur 1 et [-1]supprime le premier élément (le seul élément dans ce cas) du vecteur, laissant un vecteur avec zéro élément.

En prime, si vous voulez un single NAdu type respectif:

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