如何通过变量的值指定 pch?

How to specify pch by the value of a variable?

我正在为 R 中的一些离散点绘制 Y 与 X 的关系图。第三个变量 Z 的值为 A 或 B,因此我想通过 pch 在阴谋。我可以做到以下几点。

plot(X, Y, pch=c(3,4)[Z])

但是,我不知道这种情况下Z=="A"是赋给了3还是4。如何指定 Z=="A" 绘制为 4 而 Z=="B" 绘制为 3?

提前致谢。

您可以根据 Z 的值从 c(3, 4) 中提取子集,例如:

c(3,4)[(Z == "A") + 1]

所以当 Z <- "A"

Z <- "A"
c(3,4)[(Z == "A") + 1]
#[1] 4

Z <- "B"

Z <- "B"
c(3,4)[(Z == "A") + 1]
#[1] 3

所以代码是

plot(X, Y, pch = c(3,4)[(Z == "A") + 1])

另一种选择是使用 ifelse

plot(X, Y, pch = ifelse(Z == "A", 4, 3))

你可以做的是先绘制 X 和 Y,

plot(X, Y)

之后,使用 points() 在同一图上绘制 Z。根据不同pch.

分别做
points(X, Z[Z == "A"], pch = 4)
points(X, Z[Z == "B"], pch = 3)

您可以因式分解 Z 列。例如:

df = data.frame(x = 1:12, y = 12:1, z = c('A','B','C'))

df$z = as.factor(df$z)

plot(df$x, df$y, pch = c(22,23,24)[df$z])

会给你: