Как указать pch по значению переменной? - PullRequest
1 голос
/ 08 октября 2019

Я делаю график Y против X для некоторых дискретных точек в R. Есть третья переменная Z, которая имеет значение либо A, либо B, поэтому я хочу определить третью переменную по pch на графике. Я могу сделать следующее.

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

Однако я не знаю, назначено ли Z == "A" 3 или 4 в этом случае. Как мне указать, что Z == "A" обозначено как 4, а Z == "B" обозначено как 3?

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 08 октября 2019

Вы можете указать свой 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])

даст вам: enter image description here

1 голос
/ 08 октября 2019

То, что вы можете сделать, это сначала построить X и Y,

plot(X, Y)

После этого построить Z на том же графике, используя точки (). Делайте это отдельно, основываясь на разных pch.

points(X, Z[Z == "A"], pch = 4)
points(X, Z[Z == "B"], pch = 3)
1 голос
/ 08 октября 2019

Вы можете установить поднабор из c(3, 4) на основе значения Z, например:

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))
...