web-dev-qa-db-fra.com

Comment créer un vecteur R vide pour ajouter de nouveaux éléments

Je veux utiliser R en Python, tel que fourni par le module Rpy2. Je remarque que R a des opérations très pratiques [] Permettant d'extraire des colonnes ou des lignes spécifiques. Comment pourrais-je obtenir une telle fonction avec Python scripts?

Mon idée est de créer un vecteur R et d’ajouter les éléments souhaités dans ce vecteur de sorte que le dernier vecteur soit le même que celui de R. J’ai créé un seq(), mais il semble qu’il ait un chiffre initial 1 Ainsi, le résultat final commencerait toujours par le chiffre 1, ce qui n'est pas ce que je veux. Alors, y a-t-il une meilleure façon de faire cela?

84
ligwin
vec <- vector()

Voir aussi l'aide de vecteur

?vector
91
Brani

Je pré-alloue un vecteur avec

> (a <- rep(NA, 10))
 [1] NA NA NA NA NA NA NA NA NA NA

Vous pouvez ensuite utiliser [] pour y insérer des valeurs.

50
Roman Luštrik

Vous pouvez créer un vecteur vide comme

vec <- numeric(0)

Et ensuite ajouter des éléments en utilisant c ()

vec <- c(vec, 1:5)

Cependant, comme le dit romunov, il est bien préférable de pré-allouer un vecteur, puis de le peupler (ceci évite de réaffecter une nouvelle copie de votre vecteur à chaque fois que vous ajoutez des éléments).

22
Aaron Statham

Pour créer un vecteur vide, utilisez:

vec <- c();

Veuillez noter que je ne fais aucune hypothèse sur le type de vecteur dont vous avez besoin, par exemple. numérique.

Une fois le vecteur créé, vous pouvez y ajouter des éléments comme suit:

Par exemple, pour ajouter la valeur numérique 1:

vec <- c(vec, 1);

ou, pour ajouter une valeur de chaîne "a"

vec <- c(vec, "a");
5
Eldaw

J'ai aussi vu

x <- {}

Vous pouvez maintenant concaténer ou lier un vecteur de toute dimension à x

rbind(x, 1:10)
cbind(x, 1:10)
c(x, 10)
4
JoFrhwld

Comme l'a souligné Brani, le vecteur () est une solution, par ex.

newVector <- vector(mode = "numeric", length = 50)

renverra un vecteur nommé "newVector" avec 50 "0" comme valeurs initiales. Il est également assez courant d’ajouter simplement le nouveau scalaire à un vecteur existant pour obtenir un vecteur développé, par exemple.

aVector <- c(aVector, newScalar)

2
Sam

Dans rpy2, le moyen d'obtenir le même opérateur que "[" avec R est d'utiliser ".rx". Voir la documentation sur extraire avec rpy2

Pour créer des vecteurs, si vous savez vous débrouiller avec Python, il ne devrait y avoir aucun problème. Voir la documentation sur création de vecteurs

1
lgautier