web-dev-qa-db-fra.com

Comment initialiser un vecteur de longueur fixe en R

Comment initialiser un vecteur de longueur fixe en R ??

Par exemple, je veux un vecteur de caractères d’une longueur de 10 ??

26
ToBeGeek
?vector

X <- vector(mode="character", length=10)

Cela vous donnera des chaînes vides. Ils peuvent être indexés par lieu. Le nombre de caractères ne sera pas limité, donc si vous vous attendiez à obtenir 10 éléments de caractère, vous serez déçu.

>  X[5] <- "character element in 5th position"

>  X
 [1] ""                                  ""                                 
 [3] ""                                  ""                                 
 [5] "character element in 5th position" ""                                 
 [7] ""                                  ""                                 
 [9] ""                                  "" 
>  nchar(X)
 [1]  0  0  0  0 33  0  0  0  0  0

> length(X)
[1] 10
39
42-

Si vous souhaitez initialiser un vecteur avec des valeurs numériques autres que zéro, utilisez rep

n <- 10
v <- rep(0.05, n)
v

qui vous donnera:

[1] 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05
16
Alexander

La méthode d’initialisation la plus facile à retenir est 

vec = vector(,10); #the same as "vec = vector(length = 10);"

Les valeurs de vec sont: "[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE" (mode logique) par défaut. 

Mais après avoir défini une valeur de caractère, comme

vec[2] = 'abc'

vec devient: "FALSE" "abc" "FALSE" "FALSE" "FALSE" "FALSE" "FALSE" "FALSE" "FALSE" "FALSE" ", qui est du mode caractère.

5
Tom