我對於我的數據集有相當長的問題,我相信我的問題可以追溯到導入數據。我查看了許多其他問題和答案,以及儘可能多的幫助網站,但我似乎無法完成任何工作。我正試圖在我的數據上運行一些TTests,並且迄今爲止無法這樣做。我相信根本原因是數據被導入爲類NULL。我試圖在此處包含儘可能多的信息,以顯示我正在處理的內容以及我遇到的問題類型(如果問題出現在其他某個區域)導入爲類爲「null」的數據 - 無法執行統計,無法更改類
我的數據概述以及內容我到目前爲止一直在做的是這樣的:
實例文件數據(如讀取從.csv文件數據後顯示在R):
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多個問題(根據問題以1-5回答,長答案,簡短答案或人口統計數字標明Q,LA,SA或D) (也數字答案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
I需要這些是數字。我可以使用摘要(數據)來獲得手段等,但是當我嘗試運行ttests時,出現包括NULL的錯誤。
我試圖把此列到NUMERICS使用
data<-sapply(data,as.numeric)
,我試圖
data[,1]<-as.numeric(as.character(data[,1]))
(1和2,而不是,但我真的不明白sapply語法,我看到它在幾個其他答案,並試圖使其工作) 當我然後鍵入
class(data$Q001)
我得到「錯誤:$操作是原子向量
無效的,如果我不嘗試sapply用,我嘗試運行t檢驗中,我創建的子集,如
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’
我使用不同的語法,想看看我是否能得到任何工作試過了,
t.test(data.2$Q001, data.3$Q001, na.rm=TRUE)
給出 「在is.na(d):類型 'NULL' 的is.na()施加到非(列表或向量)」 和「在mean.default(X):參數不是數字或邏輯:回覆NA」
所以,現在我覺得我一直清楚什麼,我試圖做一些我所試過的東西...
如何導入我的數據,以便數字(特別是具有以Q開頭的列中的任何數字)被準確讀爲數字,並且不會獲得應用於它們的NULL類?爲了正確導入我的數據以運行TTests,我需要做些什麼?我在過去使用了大量的TTests,但它一直都是我在Excel中手動錄製的數據(因此只有一列數字沒有空格或NAs),我從來沒有遇到過問題,而且我只是不明白這個數據集是什麼,我不能讓它工作。任何正確的方向援助非常感謝!
你真的在使用'sep =「,」',而且你的數據文件真的不是用逗號分隔嗎?上面的語法有點損壞,但是從你顯示的內容看來,你似乎正在試圖用指定的逗號分隔符來讀取空格分隔的數據......'str(data.all)'的結果是什麼...... ??? –
對不起,我在我的例子中用空格分隔,以便讀取更容易。在R中輸入「data」時,這就是我的數據的外觀。原始文件是Part,Q001,Q002,LA003,Q004,SA005,D006。我會編輯以清楚說明。獲取數據不是問題,導入的類似乎是問題... – Aibhilin
我們仍然需要查看'str(data.all)'和'str(data)'的輸出到能夠得到任何地方... –