0

我使用 lattice 包使用下面的 csv 文件绘制图片。

.csv 文件

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

library(lattice)

data_1 <- read.table("./stackoverflow.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("./stackoverflow.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 用于导致错误消息的数据,我想要下图。图片是合成(损坏)图像。

在此处输入图像描述

我应该如何使用 R lattice 包的条件分支。

使用 R 4.0.5, lattice 0.20-38, MacOS 10.14.5。

4

1 回答 1

1

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

xyplot(a ~ b | c, data = data, panel = function(x, y){
  panel.xyplot(x, y)
  if(diff(range(x)) > 0) {
    panel.lmline(x, y)
  }
})
于 2021-07-02T04:05:16.410 回答