2017-05-08 37 views
1

我對嬰兒數據實施了多次迴歸(UsingR)。 我設定出生體重(wt)爲因變量,其他爲自變量。 當我用摘要打印時,它告訴我妊娠與種族ht(週一的身高)差不多。 因此,我打印關係(散點圖),它告訴我,有一些「未知的值,如99或999」 根據嬰兒數據(UsingR),它將未知數據設置爲99或999值。 https://cran.r-project.org/web/packages/UsingR/UsingR.pdf 我想要做的是擺脫99和999的值,並顯示散點圖和多個迴歸。 有什麼想法?如何刪除R中的某些數據? (多元迴歸)

install.packages("UsingR") 
library(UsingR) 
head(babies) 

m <- lm(wt ~ gestation + ht + wt1 + dht + dwt, data=babies) 
summary(m) 
anova(m) 

plot(babies$wt,babies$ht) #mon's height 
plot(babies$wt,babies$dwt) #dad's weight 
+0

您可以使用子集(如文檔中的示例)來刪除未知值。 – Sraffa

+0

你能否更具體地向我解釋一下?我不明白。 例如 m-1m(wt-gestation <300,數據=嬰兒) 具有上述迴歸,它將起作用,但是 m-1(wt-gestation <300+ race <10,數據=嬰兒) 當我有多個獨立變量它不起作用。 我該怎麼做? –

回答

0

如果您確定未知數據99或999的值,然後您可以將所有99個或999值NA

babies[babies == 99] <- NA 
    babies[babies == 999] <- NA 

,然後運行腳本

理想情況下,您應該轉到pdf的第10頁,查看未知的代碼,並根據未知的設置將它們明確地設置爲NA。例如:

babies$wt[babies$wt == 99] <- NA 
+1

如果你這樣做,你會失去真正的價值。例如,在'wt1'變量中有真實的99個值......除了通過檢查數據集幫助中的變量來變量變量之外,可能沒有別的辦法編碼缺失值。例如'inc'具有98和99(略有不同)缺失值 – Gilles

0

聽起來像是你想要做的是替換是99和999 NA值值是什麼,對不對? R中的大多數建模函數都知道如何處理值,並且會忽略它們,或者至少有工具讓你說出如何處理它們。

這裏是您與NA取代所有這些值的一種方法,使用mutate_if()從dplyr和ifelse()

library(UsingR) 
library(dplyr) 

data(babies) 
mean(babies == 99 | babies == 999) 
#> [1] 0.03869425 

babies_processed <- babies %>% 
    mutate_if(is.numeric, funs(ifelse(. == 99 | . == 999, NA, .))) 

mean(babies_processed == 99 | babies_processed == 999, na.rm = TRUE) 
#> [1] 0