如何为 R lattice 包编写条件分支

How to write the conditional branches for R lattice package

我用 lattice 包用下面的 csv 文件画图。

csv file

我使用下面的代码得到了预期的图片。

library(lattice)

data_1 <- read.table("./Whosebug.csv", header=T, sep=",")
data <- na.omit(data_1)

xyplot(a ~ b | c, data = data, panel = function(x, y){
  panel.xyplot(x, y)
}
)

此外,我使用下面的代码得到了下一张预期的图片。

library(lattice)

data_1 <- read.table("./Whosebug.csv", header=T, sep=",")
data <- na.omit(data_1)

xyplot(a ~ b | c, data = data, panel = function(x, y){
  panel.xyplot(x, y)
panel.lmline(x, y)
}
)

我不想使用 panel.lmline 作为导致错误消息的数据,我想要下面的图片。图片为合成(damy)图

R lattice包的条件分支怎么用

使用了R 4.0.5、lattice 0.20-38、MacOS 10.14.5。

错误是因为该面板的 x 轴上的所有值都相同,因此无法计算出一条线。您可以使用以下代码检查非零范围并仅在可能的情况下画线

xyplot(a ~ b | c, data = data, panel = function(x, y){
  panel.xyplot(x, y)
  if(diff(range(x)) > 0) {
    panel.lmline(x, y)
  }
})