2017-08-25 2 views
-2

Je suis un débutant en programmation. Quand je charge mes données dans R je trouve:Comment puis-je organiser les données en utilisant R dans ces conditions?

>str(g) 
data.frame': 253227 obs. of 2 variables: 

$ ID    : int 7896741 7896743 7896745 7896747 7896749 7896751 7896753 7896755 7896757 7896758 ... 
$ gene_assignment: Factor w/ 85855 levels "","---","AB001736 // IGLJ3 /// AB001733 // IGLJ3 /// ENST00000390609 // IGHV3-23 /// X14584 // IGHV3-23 /// BC072419 // "| __truncated__,..: 16002 81923 16018 2 2 2335 2 2392 5497 5497 ... 
  1. Comment puis-je supprimer deux catégories (""; "---") à partir de $ gene_assignment? Quel type de code dois-je utiliser?

  2. “ AB001736 // IGLJ3 /// AB001733 // IGLJ3 /// ENST00000390609 // IGHV3-23 /// X14584 // IGHV3-23 /// BC072419 // "|

Ce facteurs contient de nombreux paramètres, mais certains sont communs comme ENST00000390609 ou AB001733. Comment puis-je supprimer ces valeurs?

+0

Copie possible de [Suppression conditionnelle des lignes de données avec R] (https://stackoverflow.com/questions/8005154/conditionally-remove-dataframe-rows-with-r) –

Répondre

0

Je ne suis pas vraiment sûr de ce que vous demandez, donc je peux seulement interpréter ce que vous voulez faire. Idéalement, j'aurais laissé un commentaire, mais il me dit que 50+ de réputation est nécessaire pour le faire.


Donc, si vous voulez remplacer les deux catégories de votre facteur variable par les valeurs manquantes (alors) NAs cela devrait fonctionner:

data.frame$gene_assignment <- ifelse(data.frame$gene_assignment==...,NA,data.frame$gene_assignment) 

où ... est la valeur cible ou d'une catégorie de votre variable, NA est la nouvelle valeur (manquante), et le reste est pour garder toutes vos autres valeurs et catégories inchangées.

Le même code peut être utilisé, évidemment, pour votre deuxième problème. Remplissez simplement la valeur ciblée (1 à la fois bien sûr) et la valeur que vous souhaitez remplacer par.

Vous pouvez également créer des mannequins très facilement de cette façon, si c'est ce que vous voulez:

data.frame$dummy<-ifelse(data.frame$gene_assignment=...,1,0) 

Si vous souhaitez supprimer des lignes (Listwise) de votre data.frame basé sur une valeur donnée (par exemple "---") d'une variable spécifique (par exemple $ gene_assignment), ceci: data.frame[!(data.frame$gene_assignment=="---"),] ou ceci: subset(data.frame, gene_assignment!="---") devrait faire l'affaire. Vous devriez regarder vos NA, cependant.


En espérant que cela vous sera utile. Si ce n'est pas le cas, et si j'ai mal interprété votre question, jetez un coup d'œil à ce que vous pouvez faire pour améliorer votre façon d'écrire des questions. Les détails sont essentiels et un «exemple reproductible» (quelques exemples de données) facilitera la réponse et donnera de meilleures réponses pour vous (voir here, here et here).

+0

En outre, vous devez effectuer des recherches avant de poser une question afin que vous ne dupliquiez pas accidentellement ceux existants. Jetez un oeil à ce [post] (https://stackoverflow.com/questions/31331217/remove-values-in-vector-from-double-variable-in-r), et [this] (https: // stackoverflow .com/questions/8005154/conditionnellement-remove-dataframe-rows-with-r) aussi. –

+0

@gene: Je commente ici parce qu'il ne me laisse pas écrire sous votre "réponse" (que j'ai marqué comme "pas une réponse" btw). ** Concernant votre question: ** On dirait que le problème est survenu lorsque vous avez essayé de charger vos données dans R.Assurez-vous de spécifier le bon séparateur de vos colonnes (tel qu'utilisé dans la feuille Excel). Par défaut c'est "," mais peut être autre chose. 'sep =" ... "' fera l'affaire. Exécutez '? Read.table' pour plus d'informations sur le chargement des données. Aussi, faire des recherches sur StackOverflow: il y a beaucoup de gens qui ont eu des questions similaires beaucoup de solutions intelligentes. –