les données importées en tant que classe “null” - impossible de réaliser des statistiques, impossible de changer de classe

Je suis plutôt longue des problèmes concernant mes données et je crois que ma difficulté à remonter la trace de l'importation des données. J'ai regardé beaucoup d'autres questions et réponses ainsi que de nombreux sites d'aide que je peux trouver, mais je n'arrive pas à faire quelque chose qui fonctionne. Je suis attemping pour exécuter certains TTests sur mes données et ont été jusqu'à présent incapables de le faire. Je crois que la cause est que les données sont importées en tant que classe NULL. J'ai essayé d'inclure autant d'informations ici que je peux montrer ce que je suis en train de travailler avec les types de problèmes que je vais avoir (dans le cas où le problème est dans une autre zone)

Une vue d'ensemble de mes données et de ce que j'ai fait jusqu'à présent est: est-ce

Exemple de Fichier de données (tel qu'affiché dans la R après la lecture des données .fichier csv):

Part   Q001    Q002   LA003    Q004   SA005       D106
1       5       3     text      99     text        3
2       3             text      2      text        2 
3       2      4                3      text        5
4      99      5      text      2                  2
5       4      2                1      text        3

Donc dans mes données, les "réponses" sont de 1 à 5. 99 représente une question qui a été répondu à N/A. les blancs représentent des questions sans réponse. le "texte" des questions sont longues et courtes réponses/commentaires provenant d'une enquête. Ils sont tous stockés dans un vaste ensemble de données sur plus de 150 Participants (Partie) et plus de 300 questions (numérotée soit Q, LA, SA, ou D en fonction de la question avec de 1 à 5 de réponse, réponse, réponse courte, ou démographiques (également des réponses numériques 0 de la pensée 6)).

Quand je importer les données, j'ai besoin de ne pas tenir compte des vides ou 99 réponses afin de ne pas interférer avec les statistiques. J'ai aussi ne se soucient pas de commentaires, donc je filtre tous.

EDIT: fichier de données ressemble à:

Part,Q001,Q002,LA003,Q004,SA005,D006
1,5,3,text,99,text,3
2,3,,text,2,text,2
etc...

Je suis en utilisant les lignes suivantes pour lire les données:

data.all <- read.table("data.csv", header=TRUE, sep=",", na.strings = c("","99"))
data <- data.all[, !(colnames(data.all) %in% c("LA003", "SA005")

maintenant, quand je tape

class(data$Q001)

- Je obtenir NULL

J'ai besoin de ces être Numériques. Je peux utiliser le résumé(de données) pour obtenir les moyens et, mais lorsque j'essaie d'exécuter ttests, j'obtiens des erreurs, y compris la valeur NULL.

J'ai essayé de mettre cette colonne en objets numériques en utilisant

data<-sapply(data,as.numeric)

et j'ai essayé

data[,1]<-as.numeric(as.character(data[,1]))

(et avec les 2 au lieu de 1, mais je ne comprends pas vraiment le sapply syntaxe, je l'ai vu dans plusieurs autres réponses, et a été d'essayer de le faire fonctionner)
quand je puis tapez

class(data$Q001)

Je reçois le message "Erreur: $ opérateur n'est pas valide pour l'vecteurs

Si je n'essayez pas d'utiliser sapply, et j'essaie d'exécuter un test-t bilatéral, j'ai créé des sous-ensembles tels que

data.2<-subset(data, D106 == "2")
data.3<-subset(data, D106 == "3")

et j'utilise

t.test(data.2$Q001~data.3$Q001, na.rm=TRUE)

et je reçois "de type non valide (NULL) pour la variable de données.2$Q001'

J'ai essayé d'utiliser la syntaxe différente, en essayant de voir si je peux trouver quelque chose à travailler, et

t.test(data.2$Q001, data.3$Q001, na.rm=TRUE)

donne "En est.na(d) : est.na() appliquée à la non-(liste ou un vecteur) de type 'NULL'" et "Dans la moyenne.par défaut(x) : l'argument n'est pas numérique ou logique: le retour de NA"

Donc, maintenant, je pense que j'ai été clair sur ce que je suis en train de faire et certaines des choses que j'ai essayé...

Comment puis-je importer mes données de sorte que les nombres (en particulier le nombre dans une colonne avec un en-tête à partir du Q) sont lues de manière précise que les chiffres, et de ne pas obtenir une valeur NULL classe appliquées? Que dois-je faire pour récupérer mes données correctement importés pour exécuter TTests sur elle? J'ai utilisé TTests sur beaucoup de données dans le passé, mais il a toujours été données, j'ai enregistré manuellement dans excel (et donc une seule colonne de chiffres sans espaces ou NAs) et je n'ai jamais eu un problème, et je ne comprends pas ce que c'est sur cet ensemble de données que je ne peux pas le faire fonctionner. Toute l'assistance dans la bonne direction est très apprécié!

  • Êtes-vous vraiment à l'aide de sep=",", et il est de votre fichier de données vraiment pas séparées par des virgules? La syntaxe ci-dessus est un peu cabossé, mais à partir de ce que vous avez montré, il semble que vous essayez de lire l'espace de données séparées par une virgule séparateur spécifié ... Quel est le résultat de str(data.all) ...???
  • désolé, je les ai séparés par des espaces dans mon exemple, afin qu'il soit plus facile à lire. Voilà comment mes données ressemble quand de type "données", dans R. Le fichier d'origine est Partie,Q001,Q002,LA003,Q004,SA005,D006. Je vais modifier pour que ce soit clair. Obtenir des données n'est pas la question, la classe qui est de l'importation, comme cela semble être la question...
  • Nous avons toujours besoin de voir la sortie de str(data.all) et str(data) pour être en mesure d'obtenir n'importe où avec cette ...
  • Lorsque j'effectue str(data.all) sur mon grand réel des données de fichier-je obtenir 'data.frame': 172 obs. of 423 variables: $ ï..Q001 : int 5 4 5 5 5 4 3 5 4 4 ... $ Q002 : int 5 4 3 5 4 5 2 5 4 4 ... $ Q003 : int 5 4 4 5 4 5 3 5 3 4 ... $ Q004 : int 5 4 4 5 4 5 3 5 4 4 ... $ Q005 : int 5 4 4 5 4 5 2 5 4 4 ... $ Q006 : int 5 4 4 5 4 4 2 NA 5 4 ... Quand je puis lui demander d'afficher les données data.all$Q001 - je obtenir NULL Donc, c'est de me donner NULL avant même d'entreprendre d'autres manipulations autres que de lire le fichier de données.
  • Notez qu'il existe un couple de personnages étranges avant le nom de la première colonne: $ ï..Q001 comme ci-dessus. Un couple de questions: (1) faire fonctionner les choses, OK pour les autres colonnes (par exemple,Q002)? (2) ils travaillent, si vous utilisez data[[1]] plutôt que data$Q001? (3) Pouvez-vous vérifier si il pourrait y avoir quelques drôles de caractères dans l'entête de votre fichier?
  • Eh bien, c'est intéressant. Il ressemble à data[[1]] donne les informations appropriées, mais data$Q001 renvoie la valeur NULL. data$Q002 renvoie des données, comme le fait data[[2]]. class(data$Q001) renvoie la valeur NULL, class(data$Q002) renvoie un entier. Dans le fichier il n'y a pas d'étranges caractères avant de la première ligne de l'information. La section du haut de mes fichiers a "Q001", "Q002" etc, alors la ligne suivante commence 5, 5, 5, alors maintenant, je suis vraiment confus quant à pourquoi Q001 est de donner à null, mais les autres sont au travail. Je ne connaissais pas les données de[[1]] méthode de l'appel de colonnes, qui va certainement être utile, au moins!
  • Vous pouvez résoudre ce problème en spécifiant names(data)[1] <- "Q001", je pense. Il y a de certains des caractères bizarres dans la tête, je pense qu'ils sont tout simplement pas en montrant dans quelle que soit la façon dont vous êtes en inspectant les données. C'est pourquoi nous montrant les résultats de str(data.all) tout de suite aurait été utile ...
  • Qui n'a correctement l'étiquette de la colonne pour moi, merci! J'avais regardé le fichier dans le bloc-notes et n'ai rien vu de bizarre, je n'avais jamais entendu parler de str(données) avant, donc j'étais confus quant à ce qu'il faisait réellement, j'ai pensé qu'il avait quelque chose à voir avec la question que vous aviez demandé à propos de la virgule separater ou j'aurais répondu à votre premier commentaire, désolé! Je n'ai jamais rien fait de plus en plus complexe avec R que de lire un fichier délimité par des tabulations avec les en-têtes, puis exécutez t base.test/analyse de variance/résumé avec elle, donc je ne sais pas vraiment la plus complexe des articles que j'ai besoin de travailler avec l'ensemble de données actuel... conduisant à ces problèmes

InformationsquelleAutor Aibhilin | 2011-07-07