Porównanie błędów R4DS (1) jest możliwe tylko dla typów atomowych i listowych


W r4ds 3.6 autorzy podają następujący kod:
ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) + 
geom_point(mapping = aes(color = class)) +
geom_smooth(data = filter(mpg, class == "subcompact"), se = FALSE)

co powoduje następujący błąd
Error in class == "subcompact" : 
comparison (1) is possible only for atomic and list types

Wydaje mi się, że zadziałało, gdy autorzy to napisali, ponieważ mają ładny wykres ilustrujący wyniki.
Co się dzieje i jak mogę to naprawić? (R 3.3.2 w systemie OS X)
podziękować
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Funkcja
filter ()
pochodzi z pakietu
dplyr
. Upewnij się, że pobrałeś go przed uruchomieniem tych linii. W przeciwnym razie porównujesz z
class ()
, funkcją wbudowaną, a nie z
mpg $ class
.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Prawdopodobnie miałeś inny pakiet z załadowaną funkcją (filtrem) i filtrem maskującym dplyr
szybka i brudna naprawa:
dplyr::filter()

zamiast
filter()
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

użyj biblioteki (dplyr)
library(dplyr)ggplot(data = mpg, mapping = aes(x = displ, y = hwy)) +
geom_point(mapping = aes(color = class)) +
geom_smooth( data = filter(mpg, class == "subcompact"),
se = FALSE)

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się