簡體   English   中英

如何確保將我的所有.CSV數據導入為NA,而不是R中的空白?

[英]How Can I Make Sure All My .CSV Data Gets Imported as NA instead of Blank in R?

在我的數據集中,我正在嘗試預測四個評估:1 [好]到4 [差]。

我的模型似乎正在使用polr函數通過有序邏輯回歸來預測值-盡管它給了我“警告信息”: In cbind(race, partisanship, sex, age) : number of rows of result is not a multiple of vector length (arg 4) ,因為我可以看到有些單元格是作為空白而不是NA導入的。

輸出如下所示:

mydata <- read.csv("~/Desktop/R/mydata.csv")
attach(mydata)    
> y <- as.factor(assessment)
> x <- cbind(race, partisanship, sex, age)
Warning message:
In cbind(race, partisanship, sex, age) :
  number of rows of result is not a multiple of vector length (arg 4)
> 
> olr <- polr(y ~ x, mydata)
> summary(olr)

Re-fitting to get Hessian

Call:
polr(formula = y ~ x, data = mydata)

Coefficients:
                 Value Std. Error t value
xrace          0.49485   0.214426  2.3078
xpartisanship -0.00990   0.002942 -3.3654
xsex          -0.21304   0.299763 -0.7107
xage           0.01486   0.006812  2.1819

Intercepts:
    Value   Std. Error t value
1|2 -1.4763  0.8253    -1.7887
2|3  1.8049  0.8237     2.1913
3|4  2.4739  0.8290     2.9842

Residual Deviance: 667.1306 
AIC: 681.1306 
(1401 observations deleted due to missingness)

在定義x之前,我試圖解決添加na.strings = ""x[x==""] <- NA na.strings = ""的問題-在摘要輸出中看起來更好-但仍然出現錯誤。

這是race列,由於某種原因,它會將缺少的單元格導入為空格而不是NA ,因為當我在R-Studio中使用view(mydata) .csv文件時,我在race列中看到的是空格而不是NA ,而其他所有列都有NA ,我缺少數據。 盡管當我查看輸出時,它顯示的是NA

例如,在R-Studio中,第7行已經顯示了黨派關系的NA ,但第10行顯示了種族的空白:

> head(x, 10)
      race partisanship age
 [1,]    2         97.4  80
 [2,]    2         96.7  75
 [3,]    3         95.0  70
 [4,]    3         87.7  65
 [5,]    3         85.2  60
 [6,]    3          4.7  50
 [7,]    3           NA  40
 [8,]    3          9.1  30
 [9,]    3          1.1  80
[10,]   NA         10.2  75

是否有人對如何消除此錯誤有任何想法? 還有一種用NA導入所有.csv文件的方法,這樣我就知道一切都正確地排列了嗎?

編輯:如果這樣做有所幫助,經過更多的研究后,看起來缺少值的列顯示為空白而不是NA這是由於在將數據加載到R中之前對其進行了手動編輯以清除數據。我必須先導入,然后才需要進行一些清理,所以我不知道該如何解決。

謝謝!

這將是一長串的評論,所以讓我回答一下。

從種種錯誤看來,年齡,性別,黨派和種族並不相同。 這是一個嚴重的錯誤。 這意味着您數據中的某處,年齡[n],性別[n],游擊隊[n]和種族[n]之間的聯系已斷開。

這可能是對一個或多個向量進行nanaomit的結果。 當您不知道答案時,NA應該在那里。 如果您知道除參與者12歲以外的所有參與者的所有年齡,性別,黨派和種族,則您需要年齡[12]的NA,以便所有內容都可以排列。 如果您刪除NA,年齡[13]的年齡將以年齡[12]結束,因此與性別[12],游擊隊[12]和種族[12]相匹配,而不是與性別[13],游擊隊[13]相匹配]和種族[13]。 如果age最初是42歲,則age [42]將沒有任何價值,R會警告您它通過包裝並分配age [42] = age [1]來迫使事情起作用。

那有意義嗎?

因此,您首先需要弄清楚向量是如何變成不同長度的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM