【发布时间】:2021-05-17 07:59:05
【问题描述】:
我正在尝试比较水手队和白袜队的历史每日上座人数。
我使用 MySQL 数据库创建了我的数据框,并将其缩减为以下列:date、hometeam、dayofweek 和出勤率。
然后我使用 lubridate 将编码日期的数字转换为 R 中的 Date 字段。我还将报告 0 的游戏出席率设置为 NA。我都做了:
sea_attendance <- sea_attendance %>%
mutate(the_date = ymd(date),
attendance = ifelse(attendance == 0, NA, attendance))
我试图用这个来绘制它:
ggplot(sea_attendance,
aes(x = wday(the_date), y = attendance,
color = hometeam)) +
geom_jitter(height = 0, width = 0.2, alpha = 0.2) +
geom_smooth() +
scale_y_continuous("Attendance") +
scale_x_continuous("Day of the Week", breaks = 1:7,
labels = wday(1:7, label = TRUE)) +
scale_color_manual(values = c("blue", "grey"))
结果很酷,但我无法让 geom_smooth 工作:
我收到了这个错误:
`geom_smooth()` using method = 'gam' and formula 'y ~ s(x, bs = "cs")'
Warning messages:
1: Removed 44 rows containing non-finite values (stat_smooth).
2: Computation failed in `stat_smooth()`:
x has insufficient unique values to support 10 knots: reduce k.
3: Removed 44 rows containing missing values (geom_point).
这是教科书上的问题。我已经盯着它看了一个小时,试图找出我哪里出错了。
【问题讨论】:
-
你能给我们一个最小的可重现的例子,或者
dput(sea_attendance)的输出吗? stackoverflow.com/help/minimal-reproducible-example