Dans cet article, nous allons voir comment corriger l'opérateur $ qui n'est pas valide pour les vecteurs atomiques dans le Programmation R langue .
L’erreur à laquelle on peut être confronté dans R est :
$ operator is invalid for atomic vectors>
Une telle erreur est produite par le compilateur R lorsque nous essayons d'obtenir un élément d'un vecteur atomique en utilisant l'opérateur $. Un vecteur atomique est simplement un objet unidimensionnel contenant des données créées à l'aide des fonctions c() et vector(). R ne nous permet pas d'accéder aux éléments d'un vecteur atomique en utilisant le symbole $. Mais nous pouvons utiliser des doubles crochets, c'est-à-dire [[]] ou la fonction getElement() pour y accéder.
Quand cette erreur peut se produire
Prenons un exemple dans lequel nous avons un vecteur numérique porter initialisé avec les cinq premiers nombres naturels. Chacun des nombres se voit attribuer un nom à l'aide de la fonction noms() dans R. La syntaxe de la fonction noms() est donnée ci-dessous :
Syntaxe: noms (vect) <- valeur
Paramètres:
- vect : un objet, c'est-à-dire un vecteur, une matrice, une trame de données, etc.
- value : les noms correspondants à attribuer
R.
# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the vector> vect> |
>
>
Sortir:
Essayons maintenant d'accéder au troisième élément en utilisant l'instruction, vect$troisième :
java ajouter à un tableau
R.
'Qu'est-ce que 10 sur 100'
# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the vector> vect$third> |
>
>
Sortir:
Le compilateur R produit une erreur car nous ne sommes pas autorisés à accéder aux éléments d'un vecteur atomique de cette manière. Pour vérifier si le vecteur est vraiment un vecteur atomique, nous pouvons utiliser la fonction is.atomic() dans R. La syntaxe de cette fonction est donnée ci-dessous :
Syntaxe: est.atomic(vect)
Paramètres:
vect : Ici, vect représente un vecteur
Type de retour :
- VRAI : Si vect est un vecteur atomique
- FAUX : Si vect n'est pas un vecteur atomique
Comment corriger l'erreur
Il existe trois façons d'utiliser nous pouvons corriger cette erreur :
Méthode 1 : Accéder aux éléments à l'aide de doubles crochets
Nous pouvons accéder facilement aux éléments d'un vecteur atomique à l'aide de doubles parenthèses, [[]] :
R.
# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the third element of the> # vector> vect[[>'third'>]]> |
>
>
Sortir:
Méthode 2 : Accéder aux éléments à l’aide de la fonction getElement()
Une autre façon consiste à utiliser la fonction getElement() pour accéder aux éléments du vecteur atomique. La fonction a la syntaxe suivante :
Syntaxe: getElement (vect, spécificateur)
Paramètres:
- vect : Il représente un vecteur
- specifier : Il représente le nom de l'élément auquel nous voulons accéder
Type de retour :
- Renvoie un élément marqué d'un spécificateur
R.
enregistrer la vidéo youtube vlc
# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Display the third element of> # the vector> getElement>(vect,>'third'>)> |
>
>
Sortir:
pile Java
Méthode 3 : accéder aux éléments en convertissant le vecteur en bloc de données, puis en utilisant l'opérateur $
L'autre méthode consiste d'abord à convertir le vecteur en bloc de données, puis à appliquer l'opérateur $. Nous pouvons convertir un vecteur en bloc de données en utilisant la fonction as.data.frame(). La syntaxe de cette fonction est donnée ci-dessous :
Syntaxe: as.data.frame (objet)
Paramètre:
- l'objet représente un vecteur ou une matrice
Type de retour :
- Renvoie un vecteur
R.
# Define a vector> vect <->c>(1, 2, 3, 4, 5)> > # Set integers names> names>(vect) <->c>(>'first'>,>'second'>,>'third'>,> >'fourth'>,>'fifth'>)> > # Transform the vector to data frame> dataframe <->as.data.frame>(>t>(vect))> > # Access the third element> dataframe$third> |
>
>
Sortir: