J'ai plusieurs vecteurs de longueur inégale et je voudrais les cbind
eux. J'ai mis les vecteurs dans une liste et j'ai essayé de combiner l'utilise do.call(cbind, ...)
:Combinaison de vecteurs (cbind) de longueur différente
nm <- list(1:8, 3:8, 1:5)
do.call(cbind, nm)
# [,1] [,2] [,3]
# [1,] 1 3 1
# [2,] 2 4 2
# [3,] 3 5 3
# [4,] 4 6 4
# [5,] 5 7 5
# [6,] 6 8 1
# [7,] 7 3 2
# [8,] 8 4 3
# Warning message:
# In (function (..., deparse.level = 1) :
# number of rows of result is not a multiple of vector length (arg 2)
Comme prévu, le nombre de lignes dans la matrice résultante est la longueur du vecteur le plus long, et les valeurs de la les vecteurs plus courts sont recyclés pour compenser la longueur. Au lieu de cela, je voudrais remplir les vecteurs plus courts avec NA
valeurs pour obtenir la même longueur que le plus long vecteur. Je voudrais que la matrice ressemble à ceci:
# [,1] [,2] [,3]
# [1,] 1 3 1
# [2,] 2 4 2
# [3,] 3 5 3
# [4,] 4 6 4
# [5,] 5 7 5
# [6,] 6 8 NA
# [7,] 7 NA NA
# [8,] 8 NA NA
Comment puis-je faire cela?
flash de brillance: nm <- cbind (z1, c (z2, rep (NA, longueur (z1) -longueur (z2)))) – Nick