2017-09-27 18 views
0

下面是我的代碼:如何從數據集中找到數據?

library(car) 
dat <- filter(Prestige, complete.cases(Prestige)) 
m1 <- lm(prestige ~ type, data = dat) 

結果說,「對象‘威望’未找到」,但珍貴的數據不包括「信譽」。哪裏不對?

+2

您正在使用'filter'從包'stats',不'dplyr :: filter'。這是一個套餐衝突。使用此評論中的第二個表單。 –

+1

使用'library(dplyr)'頂部獲得正確的'filter()'函數。 – MrFlick

回答

1

我得到了同樣的錯誤,發現它周圍的方式使用邏輯的行標識:

library(car) 
dat <- Prestige[complete.cases(Prestige),] 
m1 <- lm(prestige ~ type, data = dat) 

complete.cases返回完成爲二進制真或假的行。這些邏輯值對應於行號,當放入[時,您可以達到所需的結果。

正如瑞Barradas的提到:

library(car) 
dat <- dplyr::filter(Prestige, complete.cases(Prestige)) 
m1 <- lm(prestige ~ type, data = dat) 
0

您正在使用從statsfilter功能,但我認爲你的意思是使用從dplyr包一個。嘗試加載dplyr包:

library("car") 
library("dplyr") 

dat <- Prestige 
dat <- filter(Prestige, complete.cases(Prestige)) 
m1 <- lm(prestige ~ type, data = dat) 

或者你可以這樣做:

dplyr::filter(Prestige, complete.cases(Prestige))