在R中,我想创建一个条形图,从中挑选出12种最常见的鸟类,并在条形图中说明每个物种和日历周的观察次数。data_artportal有30列,因此我需要从“artnamn”列和“startdatum”(开始日期)列中提取数据。
这是我的数据:
https://www.dropbox.com/s/sj1jrd6qiigdwe4/artportalen.csv?dl=0
下面是我的代码:
library(lubridate)
library(dplyr)
library(ggplot2)
library(forcats)
df %>%
filter(artnamn %in% top12) %>%
select(id, artnamn, startdatum) %>%
mutate(startdatum = as.Date(startdatum, format = "%Y-%m-%d"),
week.no = isoweek(startdatum)) %>%
group_by(artnamn, week.no) %>%
summarise(n = n()) %>%
ungroup %>%
mutate(week.fct = ifelse(week.no == 52, -1, week.no),
week.order = fct_reorder(as.factor(week.no), week.fct)) %>%
ggplot(aes(week.order, n, fill = artnamn)) +
geom_col(position = "stack") + facet_wrap(.~artnamn)
字符串
当我通过点击“Knit”运行整个代码时,输出应该是一个Github文档,它给了我错误:
Error in `filter()`:
ℹ In argument: `Artnamn %in% top12`.
Caused by error:
! object 'top12' not found
Backtrace:
1. ... %>% ggplot(aes(week.order, n, fill = Artnamn))
16. Artnamn %in% top12
Execution halted
型
在阅读了关于同一主题的各种论坛后,我将此代码添加到上面的代码中:
adult <- read.csv2('artportalen.csv')
df <- read.csv("artportalen.csv", stringsAsFactors = FALSE)
df <- read.csv("artportalen.csv")
型
然而,我仍然得到同样的错误。我该怎么办?
1条答案
按热度按时间ggazkfy81#
从你的问题/代码不清楚,你是如何计算
top12
。错误:字符串
告诉我们,
top12
(在filter中使用)未定义型
我的尝试:
型
让我们将
top12
定义为12个最常见的Artnamn
型
您的定义可能有点不同,但您必须在过滤之前将其包含在工作簿块中。
最后是你的代码:
型
x1c 0d1x的数据
创建于2023-07-01使用reprex v2.0.2