r - UseMethod(“filter_”)中的错误:没有适用于“filter_”的方法应用于“function”类的对象
问题描述
试图运行此代码
data %>% filter('region' != "Antarctica") %>%
ggplot(aes(long, lat, group=group)) +
geom_polygon(fill="black", color ="white", size=0.15) +
geom_curve(data = clean_flight, aes(x=src_long, xend=dest_long,
y=src_lat, yend=dest_lat),
alpha=0.25, size=0.05,
color="white", inherit.aes=FALSE)+
theme_void() +
theme(plot.background=element_rect(fill="black"), legend.position="none") +
coord_equal()
我指的是这个网站
Visualizing flight data with ggplot2
无法弄清楚为什么我会收到这个错误以及我应该怎么做。
提前致谢。
解决方案
发生错误是因为未定义对象名称
data %>%
filter('region' != "Antarctica")
Error in UseMethod("filter") :
no applicable method for 'filter' applied to an object of class "function"
data
默认情况下是一个( function
check ?data
),它加载指定的数据集,它的用法是
data(iris)
head(iris)
OP 可能希望先从文件csv
或excel
文件中读取数据
dat1 <- read.csv('file.csv')
dat1 %>%
filter(region != "Antarctica")
请注意,我们不需要在列名周围加上引号
根据更新,使用的数据是clean_flights
和不是clean_flight
library(ggplot2)
data1 <- map_data('world')
library(readr)
library(dplyr)
airports <- read_csv("https://raw.githubusercontent.com/sjfox/sjfox.github.io/master/post/data/flights/airports.csv",
col_names = c("id", "name", "city", "country", "iata", "icao", "lat", "long",
"alt", "tz", "dst", "tz2", "type", "source"), na = c("\\N"))
flights <- read_csv("https://raw.githubusercontent.com/sjfox/sjfox.github.io/master/post/data/flights/routes.csv",
col_names = c("airline", "id", "src_airport", "src_airport_id", "dest_airport",
"dest_airport_id", "codeshare", "stops", "equip"), na = c("\\N"))
airports <- airports %>% select(id, lat, long)
flights <- flights %>% select(src_airport_id, dest_airport_id) %>%
filter(!is.na(src_airport_id) & !is.na(dest_airport_id))
clean_flights <- flights %>%
left_join(airports, by = c("src_airport_id" = "id")) %>%
rename(src_lat=lat, src_long=long) %>%
left_join(airports, by = c("dest_airport_id" = "id")) %>%
rename(dest_lat=lat, dest_long=long) %>%
filter(src_airport_id != dest_airport_id) %>%
mutate(ordered_pair = if_else(src_airport_id > dest_airport_id,
paste0(dest_airport_id,src_airport_id),
paste0(src_airport_id,dest_airport_id))) %>%
filter(!duplicated(ordered_pair)) %>%
mutate(is_europe = if_else(dest_lat < 60 & dest_lat > 25 & src_lat < 60 & src_lat > 10 &
dest_long < 50 & dest_long > -15 & src_long < 50 & src_long > -15, TRUE,FALSE)) %>%
filter(!is.na(is_europe))
data1 %>% filter(region != "Antarctica") %>%
ggplot(aes(long, lat, group=group)) +
geom_polygon(fill="black", color ="white", size=0.15) +
geom_curve(data = clean_flights, aes(x=src_long, xend=dest_long,
y=src_lat, yend=dest_lat),
alpha=0.25, size=0.05,
color="white", inherit.aes=FALSE)+
theme_void() +
theme(plot.background=element_rect(fill="black"), legend.position="none") +
coord_equal()
-输出
推荐阅读
- javascript - 根据反应路由器中的路由更改元素的类名
- swiftui - SwiftUI Toggle 无法转换“布尔”类型的值?到预期的参数类型'绑定
' - python - 如何使用 php.. 中内置的 api 中的 Python(NLP/ML 等)卷曲数据?
- typescript - 打字稿条件类型缺少属性
- amazon-web-services - AWS S3 静态网站未从子域启动
- regex - Bash 在字符串上使用匹配正则表达式和后向模式
- python - 退出代码 0 但没有输出
- php - 如何使用 php 从数据库中获取的值呈现表单的选项?
- asp.net-core - 使用 FireFox + IIS + https + Windows 身份验证发布大尺寸 (1MB) 时出现 HTTP 错误 400
- python - 忽略基于周围字符的正则表达式拆分中的案例