R - 如何 'create' 或绘制缺失数据?

R - How to 'create' or plot missing data?

我有一个数据集,AIS_dat,它查看在 Covid 锁定之前和期间一周的不同日子(天)出现在三个站点(站点)的船只数量(BoatCount)。

rm(list = ls())
setwd('K:/SoundTrap/Boats/PSD Output/Duty cycle data/TOL analysis')
getwd()

AIS_dat<-read.csv("AllSitesConcat_dBcalcs_50-24000Hz_matchedCameraCounts.csv") 
str(AIS_dat)

#set factors
AIS_dat$Lockdown <- as.factor(AIS_dat$Lockdown)

#change order of sites
AIS_dat$Site<-factor(AIS_dat$Site, 
                     level=c('Kawau','Tiritiri','Noises'))

#change order of days
AIS_dat$Day<-factor(AIS_dat$Day, 
                     level=c('Mon','Tue','Wed','Thu','Fri','Sat','Sun'))

#hour of day as factor
AIS_dat$Hour <- as.factor(AIS_dat$Hour)


#Look at variation between sites
bp<-ggplot(AIS_dat, aes(x=Day,y=BoatCount,fill=factor(Site))) +
  geom_boxplot()+
  ylab(expression("Number of Boats"))+
  xlab("Day of Week")+
  scale_fill_manual(values = get_pal("Kereru"),
                    name="Site") +
  theme_bw()
bp

bp<-bp+theme(axis.text.x = element_text(angle = 0,size=14),
             axis.text.y = element_text(size=14),
             axis.title.x = element_text(size=14),
             axis.title.y =element_text(size=14),
             #legend.title = element_text(size = 14),
             #legend.text = element_text(size = 14)
              ) #rotate x-axis labels

bp<-bp+facet_grid(rows=vars(Lockdown)) #separate plot for each season
bp

情节看起来像this

...太棒了。但是,因为 'During' 下没有 Tiritiri 的数据,我们只看到两个站点,这有点误导,因为站点的顺序随后发生了变化。我希望此面板中缺少数据以明确哪个网站是哪个。我该怎么做?我是否必须以某种方式将缺失的数据添加到我的原始数据表中?我试过了,但没有用,所以如果这是最好的方法,我不确定该怎么做?

数据集看起来像 this(但有 17143 行):

您可以将 siteday 合并到一个用于 x 轴刻度的新列中。函数 facet 将默认以固定方式排列 x 刻度值:

library(tidyverse)

set.seed(1337)

before_data <-
  tribble(
  ~step, ~Site,
  "before", "K",
  "before", "T",
  "before", "N"
) %>%
  mutate(
    value = rnorm(10) %>% list()
  ) %>%
  unnest(value)

during_data <-
  tribble(
    ~step, ~Site,
    "during", "K",
    "during", "N"
  ) %>%
  mutate(
    value = rnorm(10) %>% list()
  ) %>%
  unnest(value)

data <- bind_rows(before_data, during_data) %>% mutate(day = "Monday")

data %>%
  mutate(x = paste0(day, Site)) %>%
  ggplot(aes(x, value, color = Site)) +
    geom_boxplot() +
    facet_grid(~step)

reprex package (v2.0.1)

于 2021-09-13 创建