Sous-ensemble des données /de l'extraction des données basée sur les 7 premières lettres
J'ai un énorme ensemble de données avec génotypique des informations provenant de différentes populations. Je voudrais trier les données en fonction de la population, mais je ne sais pas comment.
Je voudrais trier par "pedigree_dhl". J'ai été en utilisant le code suivant, mais j'ai continué à obtenir des messages d'erreur.
newdata <- project[pedigree_dhl == CCB133$*1, ]
Mon problème est également que "pedigree-dhl' contient tous les noms des différents génotypes. Seules les 7 premières lettres dans la colonne "pedigree-dhl" sont le nom de la population.Dans cet exemple:CCB133. Comment puis-je dire R, que je veux extraire les données pour toutes les colonnes qui contiennent des CCB133?
Allele1 Allele2 SNP_name gs_entry pedigree_dhl
1 T T ZM011407_0151 656 CCB133$*1
2 T T ZM009374_0354 656 CCB133$*1
3 C C ZM003499_0591 656 CCB133$*1
4 A A ZM003898_0594 656 CCB133$*1
5 C C ZM004887_0313 656 CCB133$*1
6 G G ZM000583_1096 656 CCB133$*1
substr
vous permet d'extraire des sous-chaînes de caractères vectorielles. Vous aurez envie de vous assurer que votre colonne est en fait un caractère de vecteur et non un facteur avant d'utiliser substr
ou vous pouvez obtenir des résultats inattendus. Pour., recherche pour R subset
et vous trouverez de nombreuses réponses. Le subset()
fonction elle-même est assez utile pour la session interactive, tout en utilisant la [
opérateur est préférable dans certaines situations.
OriginalL'auteur marie | 2012-04-25
Vous devez vous connecter pour publier un commentaire.
Vous pourriez envisager de
grep
comme dans la réponse sur Utilisation des regexp pour sélectionner les lignes en R dataframe. Adaptés à vos données:Mais votre question implique que vous voudrez peut-être sélectionner les sept nom de la lettre, ou tout simplement pour trier les lignes par pedigree nom et il peut être plus facile de garder toutes les lignes ensemble triés dataframe. L'ensemble de ces trois opérations: sous-paramètre, l'extraction d'une nouvelle colonne, ou le tri, peut être réalisée de façon indépendante.
Tout cela peut être évident-je ajouter, tout simplement, par souci d'exhaustivité.
read.table
de 2.14, je pense, maintenant prend en argument texte directement, ce qui signifie pas de besoin pour letextConnection
Merci @Tyler Rinker, les vieilles habitudes ont la vie dure. Cependant, j'ai essayé, sans succès. J'ai aussi regardé dans le
help
et de voir que lesfile
paramètre peut être un chemin d'accès à un fichier local, un texte de connexion, ou d'une URL. Heureux de voir que des solutions de rechange si, dans un montage, comme j'aimerais une façon plus élégante de le faire.J'ai ajouté le modifier pour vous.
+1 pour la peine 🙂
et @Tyler, merci beaucoup pour la bonne réponse. Il ya un couple de choses que je vous suggère: 1) l'OP a demandé une sous-chaîne de
pedigree_dhl
, pasSNP_name
. 2) Lors de la commande, vous pouvez omettre ledf$
et tout simplementdf[with(df, order(pedigree_dhl)), ]
. J'ai envisagé de faire (ou plutôt ce qui suggère), ces variations dans la réponse directement, mais ils sont plutôt très longue, surtout la première.OriginalL'auteur gauden