首页 > 解决方案 > Plotting only if values fall into specific range

问题描述

I'm currently working with a dataset of datazones and various factors relating to them in R. I wish to plot certain values from the dataset on a plot, but only if the datazones fall within specific coordinates. I've currently got this code, but to no avail:


if (datazones2$lon >= -4.327355 && datazones2$lon <= 4.275699 
                && datazones2$lat >= 55.87163 && datazones2$lat <= 55.89725){
  plot(datazones2$distance, datazones2$AverageMortalityRates.2014,
                             ylab = "Average Relative Mortality 2014-2017", xlab= "distance", main=heading)
 lines(datazones2$distance, datazones2$AverageMortalityRates.2014, type="b")
}

I thought a simple if statement would work, but I'm new to R. Any help on how to get it to plot within these conditions?

Thanks!

标签: r

解决方案


不是很优雅,但这应该可以。

GoodPoints = which(datazones2$lon >= -4.327355 && datazones2$lon <= 4.275699 &&
                datazones2$lat >= 55.87163 && datazones2$lat <= 55.89725)
plot(datazones2$distance[GoodPoints], datazones2$AverageMortalityRates.2014[GoodPoints],
                ylab = "Average Relative Mortality 2014-2017", xlab= "distance", main=heading)
 lines(datazones2$distance[GoodPoints], datazones2$AverageMortalityRates.2014[GoodPoints], 
 type="b")

推荐阅读