7
votes

Erreur lors de l'exportation de DataFrame sur un fichier texte dans R

J'essaie d'écrire un fichier de données dans R vers un fichier texte, mais il retourne à la suite d'erreur suivante: xxx pré>

J'ai utilisé la commande suivante pour l'exportation: p> XXX PRE>

Je n'ai aucune idée de ce que le problème pourrait découler de. En ce qui concerne les "données manquantes où le vrai / faux est nécessaire", je n'ai qu'une colonne contenant des valeurs vraies / fastes et aucune de ces valeurs ne manque. p>

Contenu du DataFrame: P>

> str(df)
'data.frame':   776 obs. of  15 variables:
 $ Age         : Factor w/ 4 levels "","A","J","SA": 2 2 2 2 2 2 2 2 2 2 ...
 $ Sex         : Factor w/ 2 levels "F","M": 1 1 1 1 2 2 2 2 2 2 ...
 $ Rep         : Factor w/ 11 levels "L","NR","NRF",..: 1 1 4 4 2 2 2 2 2 2 ...
 $ FA          : num  61.5 62.5 60.5 61 59.5 59.5 59.1 59.2 59.8 59.9 ...
 $ Mass        : num  20 19 16.5 17.5 NA 14 NA 23 19 18.5 ...
 $ Vir1        : num  999 999 999 999 999 999 999 999 999 999 ...
 $ Vir2        : num  999 999 999 999 999 999 999 999 999 999 ...
 $ Vir3        : num  40 999 999 999 999 999 999 999 999 999 ...
 $ Location    : Factor w/ 4 levels "Loc1",..: 4 4 4 4 4 4 2 2 2 2 ...
 $ Site        : Factor w/ 6 levels "A","B","C",..: 5 5 5 5 5 5 3 3 3 3 ...
 $ Date        : Date, format: "2010-08-30" "2010-08-30" ...
 $ Record      : int  35 34 39 49 69 38 145 112 125 140 ...
 $ SampleID    : Factor w/ 776 levels "AT1-A-F1","AT1-A-F10",..: 525 524 527 528
                                                                 529 526 111 78
                                                                 88 110 ...
 $ Vir1Inc     : logi  FALSE FALSE FALSE FALSE FALSE FALSE ...
 $ Month       :'data.frame':   776 obs. of  2 variables:
  ..$ Dates: Date, format: "2010-08-30" "2010-08-30" ...
  ..$ Month: Factor w/ 19 levels "Apr-2011","Aug-2010",..: 2 2 2 2 
                                                           2 2 18 18 18 18 ...


7 commentaires

Je pense que vous obtenez une erreur parce que vos données.frame contient un nom de données imbriquées. Noms de caractères ...


@Astudy Le fichier d'aide indique write.table peut gérer les fichiers de données imbriqués. Je suppose que quelque chose est encrassé et le code && ncol (xj) indiqué dans le message d'erreur tente de traiter une non-matrice, donc ncolxj) retourne Null et r déteste "null" dans une opération logique.


Quoi qu'il en soit, le plan d'attaque évident est d'essayer write.table sur une partie de df , après avoir supprimé les éléments "mauvais" candidats et voir quel élément est le coupable.


@Carlwitthoft Vous pouvez voir mon exemple.


Yup - ressemble à la documentation pour write.table est incomplet. Il peut gérer des colonnes qui sont des listes, mais pas des listes imbriquées.


Merci. Votre cadre de données imbriquée et votre déclaration d'erreur est utile .. merci


J'ai rencontré ce problème avec write.table lorsque j'ai créé une trame de données d'une matrice via as.data.frame . Les colonnes sont créées comme des listes de listes d'une seule apparition.


3 Réponses :


6
votes

Un exemple pour reproduire l'erreur. Je crée une donnée imbriquée.Frame:

write.table(data.frame(subset(dd,select=-c(Month)),unclass(dd$Month)))


0 commentaires

5
votes

La solution d'Agstudy fournit une excellente solution rapide, mais il y a une solution simple simple / générale pour laquelle vous ne devez pas spécifier l'élément (s) de vos données. ont été nichés:

Le bit suivant est juste copié de Solution d'Agstudy pour obtenir les données imbriquées. Code dd : xxx

Vous pouvez utiliser 's < Code> LinéarizeStetétée () Fonction (quelle mrDWAB est disponible ici ) pour aplatir ( ou linéariser) les niveaux imbriqués: xxx

ddf est maintenant une donnée.frame sans nidification. Cependant, c'est que les noms de colonne reflètent toujours la structure imbriquée: xxx

si vous souhaitez modifier ceci (dans ce cas, il semble redondant d'avoir mois. Écrit avant dates , par exemple) Vous pouvez utiliser gsub et une expression régulière < / a> que j'ai copié de Sacha Epskamp pour supprimer tout texte dans les noms de colonne avant le . . xxx

La seule chose qui reste maintenant exporte la seule chose à exporter les données.frame comme d'habitude: xxx


0 commentaires