如何通过突出显示r中的缺失值来绘制时间序列

k97glaaz  于 2023-02-14  发布在  其他
关注(0)|答案(1)|浏览(146)

我有一个数据框缺少值。例如:

time    Value 
1       23
2       12
3       NA
4       18
5       NA

我想画出R中数据的时间序列,并在图中用圆圈突出显示缺失值,我不知道该怎么做,如果有任何建议我会很高兴的。
我使用了plot命令,但它在缺失值的地方给空。我需要用一个圆圈突出显示缺失值。

yebdmbv4

yebdmbv41#

这个问题有点开放,这里有两个建议:

碱基R

plot(Value ~ time, data = quux, pch = 16)
with(subset(quux, is.na(Value)),
     points(time, rep(par("usr")[3], length(time)),
            xpd = TRUE, pch = 16, col = "red"))

ggplot2

library(ggplot2)
quux |>
  transform(isna = is.na(Value), Value = ifelse(is.na(Value), -Inf, Value)) |>
  ggplot(aes(time, Value, color = isna)) +
  geom_point() +
  scale_color_manual(values = c("FALSE" = "black", "TRUE" = "red")) +
  coord_cartesian(clip = "off")

数据

quux <- structure(list(time = 1:5, Value = c(23L, 12L, NA, 18L, NA)), class = "data.frame", row.names = c(NA, -5L))

相关问题