У меня довольно длительные проблемы с набором данных, и я считаю, что мои проблемы связаны с импортом данных.Я просмотрел много других вопросов и ответов, а также множество справочных сайтов, которые только смог найти, но, похоже, я не могу заставить что-либо работать.Я пытаюсь выполнить некоторые тесты TT для своих данных и до сих пор не смог этого сделать.Я считаю, что основной причиной является то, что данные импортируются как класс NULL.Я попытался включить здесь как можно больше информации, чтобы показать, с чем я работаю, и типы проблем, с которыми я сталкиваюсь (если проблема в какой-то другой области)
Обзор моих данныхи то, что я делал до сих пор, это:
Данные файла примера (как показано в R после чтения данных из файла .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
Итак, в моих данных«ответы» - от 1 до 5. 99 представляет вопрос, на который был дан ответ N / A.пробелы представляют собой оставшиеся без ответа вопросы.«текстовые» вопросы - это длинные и короткие ответы / комментарии из опроса.Все они хранятся в большом наборе данных, содержащем более 150 участников (часть) и более 300 вопросов (помеченные Q, LA, SA или D, основанные на вопросе с 1-5 ответами, длинным ответом, коротким ответом или демографическим описанием).(также числовые ответы 0 мысли 6 или около того)).
Когда я импортирую данные, мне нужно, чтобы они игнорировали любые пустые или 99 ответов, чтобы они не мешали статистике.Мне также наплевать на комментарии, поэтому я отфильтрую их все.
РЕДАКТИРОВАТЬ: файл данных выглядит следующим образом:
Part,Q001,Q002,LA003,Q004,SA005,D006
1,5,3,text,99,text,3
2,3,,text,2,text,2
etc...
Я использую следующие строки для чтения данных:
data.all <- read.table("data.csv", header=TRUE, sep=",", na.strings = c("","99"))
data <- data.all[, !(colnames(data.all) %in% c("LA003", "SA005")
теперь, когда я набираю
class(data$Q001)
, я получаю NULL
Мне нужно, чтобы они были числовыми.Я могу использовать сводку (данные), чтобы получить средства и тому подобное, но когда я пытаюсь запустить тесты, у меня появляются ошибки, в том числе NULL.
Я пытался превратить этот столбец в цифры, используя
data<-sapply(data,as.numeric)
и я попытался
data[,1]<-as.numeric(as.character(data[,1]))
(и с 2 вместо 1, но я не очень понимаю синтаксис Саппли, я видел его в нескольких других ответах и пытался заставить его работать), когдаЗатем я набираю
class(data$Q001)
Я получаю «Ошибка: оператор $ недопустим для атомарных векторов
Если я не пытаюсь использовать sapply и пытаюсь запустить ttest, ясозданные подмножества, такие как
data.2<-subset(data, D106 == "2")
data.3<-subset(data, D106 == "3")
, и я использую
t.test(data.2$Q001~data.3$Q001, na.rm=TRUE)
, и я получаю «недопустимый тип (NULL) для переменной» data.2 $ Q001 '
Iпопытался использовать другой синтаксис, пытаясь выяснить, могу ли я заставить что-либо работать, и
t.test(data.2$Q001, data.3$Q001, na.rm=TRUE)
выдает «In is.na (d): is.na () применяется к не- (список или вектор»)) типа 'NULL' "и« In mean.default (x): аргумент не является числовым или логическим: возвращает NA »
Итак, теперь, когда я думаю, что я ясно понял, что пытаюсьчтобы сделать и некоторые из вещей, которые я пытался ...
Как я могу импортировать мои данные, чтобы числа (в частности, любое число в столбце с заголовком, начинающимся с Q) были точно прочитаны как числа и сделатьне получить к ним пустой класс?Что мне нужно сделать, чтобы правильно импортировать мои данные для запуска на них TTests?В прошлом я использовал TTests для большого количества данных, но это всегда были данные, которые я записывал вручную в Excel (и поэтому имел только один столбец чисел без пробелов или NA), и у меня никогда не было проблем, и япросто не понимаю, что это за набор данных, что я не могу заставить его работать.Любая помощь в правильном направлении очень ценится!