Comment faire pour créer une trame de données à partir de zéro dans r

La conversion d'une matrice à une trame de données dans R ne peut pas être utilisé pour construire une trame de données avec différents types de valeurs. Si vous combinez les deux données numériques et de caractère dans une matrice, par exemple, tout sera converti en caractère.

Sommaire

Vous pouvez construire une trame de données à partir de zéro, même si, en utilisant le trame de données() fonction.

Faire une trame de données de vecteurs dans R

Donc, nous allons faire un peu de trame de données avec les noms, les salaires, et les dates de départ de quelques collègues imaginaires. Tout d'abord, vous créez trois vecteurs qui contiennent les informations nécessaires comme ceci:

> Employé lt; - c ('John Doe', 'Peter Gynn »,« Jolie Espoir')> salaire lt; - c (21000, 23400, 26800)> startdate lt; - as.Date (c ('01.11.2010 »,« 25/03/2008 »,« 14/03/2007 »))

Maintenant vous avez trois vecteurs différents dans votre espace de travail:

  • UN vecteur de caractères appelé employé, contenant les noms




  • UN vecteur numérique appelé salaire, contenant les salaires annuels

  • UN Date vecteur appelé date de début, contenant les dates à laquelle les contrats ont commencé

Ensuite, vous combinez les trois vecteurs dans une trame de données en utilisant le code suivant:

> Employ.data lt; - data.frame (employé, le salaire, startdate)

Le résultat de ceci est une trame de données, employ.data, avec la structure suivante:

> Str (employ.data) 'data.frame': 3 obs. de 3 variables: $ employé: Facteur w / 3 niveaux "John Doe", "Jolie espoir", ..: 1 3 2 $ de salaire: num 21000 23400 26800 $ startdate: Date, format: "2010-11-01" " 2008-03-25 "...

Pour combiner un certain nombre de vecteurs dans une trame de données, vous simplement ajouter tous les vecteurs comme arguments à la trame de données() fonction, séparées par des virgules. R va créer une trame de données avec les variables qui sont nommés le même que les vecteurs utilisés.

Gardez personnages comme des personnages dans R

Vous avez peut-être remarqué quelque chose d'étrange quand on regarde la structure de employ.data. Alors que le vecteur employé est un vecteur de caractères, la variable R a employé dans les données encadrer un facteur.

R fait cela par défaut, mais vous avez un argument supplémentaire pour la trame de données() fonction qui peut éviter cela - à savoir, l'argument stringsAsFactors. Dans le employ.data par exemple, vous pouvez empêcher la transformation à un facteur de la employé variable en utilisant le code suivant:

> Employ.data lt; - data.frame (employé, le salaire, startdate, stringsAsFactors = FALSE)

Si vous regardez la structure de la trame de données maintenant, vous voyez que la variable employé est un vecteur de caractères, comme le montre le résultat suivant:

> Str (employ.data) 'data.frame': 3 obs. de 3 variables: $ salariés: chr "John Doe" "Peter Gynn" "Jolie espoir" $ de salaire: num 21000 23400 26800 $ startdate: date, le format: «2010-11-01» «2008-03-25» .. .

Par défaut, R transforme toujours vecteurs de caractères à des facteurs lors de la création d'une trame de données avec des vecteurs de caractères ou la conversion d'une matrice de caractère à une trame de données. Cela peut être une cause méchant d'erreurs dans votre code si vous n'êtes pas au courant de cela. Si vous prenez l'habitude de toujours spécifier le stringsAsFactors argument, vous pouvez éviter beaucoup de frustration.


» » » » Comment faire pour créer une trame de données à partir de zéro dans r