Copier/coller à partir d'un DataFrame

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Michèle Raffaelli
Messages : 11
Enregistré le : 25 Avr 2017, 16:22

Copier/coller à partir d'un DataFrame

Messagepar Michèle Raffaelli » 02 Mai 2017, 10:14

Bonjour,
Je dois traiter des données avec R malheureusement le logiciel me donnant les dites données ne fournit pas un résultat optimal pour cette utilisation.
J'ai donc une colonne avec des nom de protéines (lettres, chiffres et caractères spéciaux) sauf que cette mention est écrite qu'une seule fois et que le tableau possède plusieurs lignes par protéine.
Il me faudrait donc une solution pour faire un copier/coller du nom de la protéine dans la case du dessous jusqu'à l'apparition d'un nouveau nom de protéine.
Malgré mes recherches diverses et variées je n'ai pas trouvé de solutions à mon problème.
Si quelqu'un pouvait m'aider ça serait sympa (au besoin je peux essayé de réexpliquer si je n'arrive pas à me faire comprendre)
Merci par avance.

Michaël Delorme
Messages : 67
Enregistré le : 04 Avr 2016, 10:21

Re: Copier/coller à partir d'un DataFrame

Messagepar Michaël Delorme » 02 Mai 2017, 11:02

Si la colonne nom_proteine du dataframe df contient des noms et des NA :

Code : Tout sélectionner

library(tidyverse)
df <- fill(df, nom_proteine)

Michèle Raffaelli
Messages : 11
Enregistré le : 25 Avr 2017, 16:22

Re: Copier/coller à partir d'un DataFrame

Messagepar Michèle Raffaelli » 02 Mai 2017, 13:20

J'ai essayé après avoir installer tidyverse et pour autant ça ne fonctionne pas (et pourtant je mets le nom de ma df ...)

Michaël Delorme
Messages : 67
Enregistré le : 04 Avr 2016, 10:21

Re: Copier/coller à partir d'un DataFrame

Messagepar Michaël Delorme » 02 Mai 2017, 13:47

Si, si, ça marche :

Code : Tout sélectionner

library(tidyverse)
df <- read_csv2("nom_proteine;valeur
A;1
;2
;3
;4
B;5
;6
;7
;8
;9
C;10
;11")

df <- fill(df, nom_proteine)
df

Il est possible que tes "valeurs nulles" ne soient pas des NA mais des chaînes vides ; auquel cas faire auparavant

Code : Tout sélectionner

df[df$nom_proteine == "", "nom_proteine"] <- NA

Michèle Raffaelli
Messages : 11
Enregistré le : 25 Avr 2017, 16:22

Re: Copier/coller à partir d'un DataFrame

Messagepar Michèle Raffaelli » 02 Mai 2017, 14:21

AH oui en effet ça fonctionne mieux ainsi j'avais oublié de préciser le type de la case vie mea culpa
Merci beaucoup pour votre aide précieuse

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: Copier/coller à partir d'un DataFrame

Messagepar Serge Rapenne » 02 Mai 2017, 14:21

Bonjour,

juste une petite remarque complémentaire à la réponse de Michael.
le package "tidyverse" est un "meta-package" qui regroupe les package ggplot2,dplyr, tidyr, readr, purr, tibble, hms, string, lubridate, forcats, DBI, haven,httr, jsonlite, readxl, rvest et xml2. library(tidyverse) va charger tous ces packages ce qui en terme d'utilisation est pratique mais pas forcement optimal en terme d'utilisation de la mémoire et d'espace disque (tous ces packages sont installés à l'installation de tidyverse)
La fonction "fill" provient du package tidyr et donc installer ce package puis library(tidyr) suffit pour ton besoin

Cordialement

Serge

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Re: Copier/coller à partir d'un DataFrame

Messagepar Serge Rapenne » 02 Mai 2017, 14:30

D’ailleurs quitte à utiliser tidyverse, autant utiliser les possibilités de dplyr

ce qui pourrait donner

Code : Tout sélectionner

df %>% mutate(nom_proteine=ifelse(nom_proteine=="",NA,nom_proteine)) %>% fill(nom_proteine)


Serge

Michèle Raffaelli
Messages : 11
Enregistré le : 25 Avr 2017, 16:22

Re: Copier/coller à partir d'un DataFrame

Messagepar Michèle Raffaelli » 02 Mai 2017, 14:37

Merci beaucoup Serge


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité