Comment créer une trame de données à une ligne à partir d'un vecteur dans R ?

Empiromancien

Quelle est la manière la plus concise et/ou élégante de transformer un vecteur en une trame de données à une seule ligne dans R ? J'essaie d'utiliser une fonction qui renvoie un vecteur à 5 éléments et de l'appliquer à tous les groupes de mon bloc de données, comme ceci :

library(tidyverse)
mtcars %>% 
  group_by(cyl) %>% 
  group_map(~boxplot.stats(.$wt)$stats)

J'aimerais avoir ces résultats sous forme de lignes dans un nouveau bloc de données, plutôt qu'une liste de vecteurs, afin que je puisse tracer avec eux dans ggplot. Mais le mieux que j'ai trouvé est d'ajouter do.call(rbind, .) %>% as.data.frameà la fin de mon pipeline, ce qui semble disgracieux et inélégant. Remplacer le group_mappar un group_modifysemble être la réponse, mais la fonction se plaint que mes résultats ne sont pas une trame de données. Et envelopper la fonction anonyme dans un appel à tibble_rowne fonctionne pas car tibble_rowne prend pas de vecteurs, juste des éléments individuels ou des colonnes de liste explicites.

Idéalement, la sortie ressemblerait à :

  cyl    V1     V2    V3     V4   V5
1   4 1.513 1.8850 2.200 2.6225 3.19
2   6 2.620 2.8225 3.215 3.4400 3.46
3   8 3.170 3.5200 3.755 4.0700 4.07

Il y a sûrement une façon plus élégante de faire ce que j'essaie de faire, idéalement dans le cadre de tidyverse ?

akrun

Nous pourrions utiliser unnest_wideraprès avoir renvoyé la sortie dans un listinsummarise

library(dplyr)
library(tidyr)
mtcars %>%
    group_by(cyl) %>%
    summarise(out = list(boxplot.stats(wt)$stats)) %>% 
    unnest_wider(out) %>% 
    rename_at(-1, ~ str_replace(., '\\.+', 'x'))
# A tibble: 3 x 6
#    cyl    x1    x2    x3    x4    x5
#   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1     4  1.51  1.88  2.2   2.62  3.19
#2     6  2.62  2.82  3.22  3.44  3.46
#3     8  3.17  3.52  3.76  4.07  4.07

Ou si nous voulons utiliser la méthode de l'OP, définissez les noms pour cela vectoret utilisezas_tibble_row

library(purrr)
library(stringr)
mtcars %>% 
  group_by(cyl) %>% 
  group_map(~ tibble(cyl = first(.x$cyl), 
          setNames(boxplot.stats(.$wt)$stats, str_c('x', 1:5)) %>% 
             as_tibble_row) , .keep = TRUE) %>%
  bind_rows
# A tibble: 3 x 6
#    cyl    x1    x2    x3    x4    x5
#  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1     4  1.51  1.88  2.2   2.62  3.19
#2     6  2.62  2.82  3.22  3.44  3.46
#3     8  3.17  3.52  3.76  4.07  4.07

Comme la sortie de group_mapest toujours un list, il peut être préférable d'utiliser group_modifypour renvoyer un tblévitant ainsi le derniermap_dfr/bind_rows

mtcars %>% 
  group_by(cyl) %>% 
  group_modify(~ setNames(boxplot.stats(.$wt)$stats, str_c('x', 1:5)) %>%
         as_tibble_row , .keep = TRUE) %>% 
  ungroup
# A tibble: 3 x 6
#    cyl    x1    x2    x3    x4    x5
#  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1     4  1.51  1.88  2.2   2.62  3.19
#2     6  2.62  2.82  3.22  3.44  3.46
#3     8  3.17  3.52  3.76  4.07  4.07

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Comment créer des variables factices dans une trame de données à partir d'un vecteur de caractères ?

Comment créer un vecteur avec les valeurs d'une trame de données classées par facteurs dans R ?

comment créer une trame de données à partir d'une liste imbriquée dans R?

Attribuer une valeur à une colonne de trame de données à partir d'un vecteur dans R

R: Création d'une trame de données à partir d'un vecteur irrégulier

Comment créer une colonne dans une trame de données calculée à partir d'une autre trame de données dans R?

Comment créer plusieurs trames de données à partir d'une trame de données avec plusieurs conditions dans R

Comment créer une table de fréquences à partir d'une trame de données dans R

Comment filtrer une trame de données par colonne à l'aide d'un vecteur dans R?

Meilleur moyen de lier un vecteur/une liste entière à chaque ligne d'une trame de données dans R ?

Comment créer une boucle for pour obtenir des corrélations à partir d'une trame de données dans R ?

R: vérifier si un vecteur fait partie d'une ligne dans une trame de données

R - Comment créer une trame de données à partir d'une trame de données avec des conditions?

Convertir un vecteur à partir d'une trame de données

Comment créer une trame de données à partir de deux vecteurs dans R?

Comment lire plusieurs fichiers et créer une seule trame de données à partir d'eux dans R?

Comment créer un bloc de données à partir d'une liste imbriquée dans R

Comment créer une trame de données à plusieurs niveaux à partir d'un dictionnaire à couches inégales ?

Comment créer une trame de données Pandas à partir d'un tuple

Comment créer un histogramme à partir d'une trame de données pandas ?

comment créer plusieurs trames de données à partir d'une autre trame de données dans une boucle

Créer une trame de données pandas à partir d'un fichier .txt avec des données par ligne

Créer une trame de données à partir d'objets avec des valeurs NULL dans R

Création d'une matrice factice à partir du vecteur PAS dans la trame de données

Comment créer une trame de données de ligne spatiale à partir de polylignes codées?

Créer un tracé de ligne à partir d'une trame de données avec un index à deux colonnes

Comment filtrer une trame de données dans R en fonction d'un vecteur de noms de colonnes?

Comment créer un facteur à trois niveaux dans une trame de données en R ?

Dans Pandas, comment créer une trame de données à partir d'un nombre d'éléments dans une colonne séparés par des virgules?

TOP liste

  1. 1

    Comment utiliser HttpClient avec TOUT cert ssl, quelle que soit la « mauvaise » est

  2. 2

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  3. 3

    Résultat de l'échantillonneur JMeter : comprendre le temps de chargement, le temps de connexion et la latence

  4. 4

    Modbus Python Schneider PM5300

  5. 5

    Pourquoi Object.hashCode () ne suit pas la convention du code Java

  6. 6

    Comment faire une recherche partielle et obtenir un score pertinent dans Elasticsearch

  7. 7

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  8. 8

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  9. 9

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  10. 10

    Comment changer la couleur de la police dans R?

  11. 11

    Autocomplete avec java, Redis, Recherche élastique, Mongo

  12. 12

    MasterService d'ElasticSearch prend trop de temps pour calculer l'état du cluster et lancer ProcessClusterEventTimeoutException

  13. 13

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  14. 14

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  15. 15

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  16. 16

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  17. 17

    Quelque chose dans le cluster Elasticsearch 7.4 devient de plus en plus lent avec les délais de lecture de temps en temps

  18. 18

    Ajustement non linéaire avec R

  19. 19

    php ajouter et fusionner des données de deux tables

  20. 20

    Exporter la table de l'arborescence vers CSV avec mise en forme

  21. 21

    帶有 Spring Boot 和 Azure AD 的 KeyCloak

chaudétiquette

Archive