理解这个绘图功能当研究的线性模型,我曾经读取用于绘制下述R脚本:混乱上中的R
plot(d[, 2], d[, 4], xlab="d[, 2]", ylab="d[, 4]", col=2 * (1 + (d[, 1] == "A")))
这里d是一个数据集。令我困惑的是如何理解col=2 * (1 + (d[, 1] == "A"))
的目标是实现什么?
理解这个绘图功能当研究的线性模型,我曾经读取用于绘制下述R脚本:混乱上中的R
plot(d[, 2], d[, 4], xlab="d[, 2]", ylab="d[, 4]", col=2 * (1 + (d[, 1] == "A")))
这里d是一个数据集。令我困惑的是如何理解col=2 * (1 + (d[, 1] == "A"))
的目标是实现什么?
实际上,它将根据第一列(d[,1]
)的值设置点的颜色(col
)。的值之间的特定映射可以由锻炼的可能性来得到:
d[,1]=="A"
是TRUE
如果第一列是“A”,否则FALSE
。
1+(d[,1]=="A")
取此TRUE/FALSE值并将其转换为数字(分别为1和0),以便它可以添加到数字1.因此,如果第一列为“A”,则为2
,并且否则为1
。如果第一列为“A”,则为4
,否则为2
。
实际效果是,对应于第一列为“A”的行的点以彩色4
绘制,其他所有点都以颜色2
绘制。
要确定这些数字指的是什么颜色,它们是palette()
结果中的索引。
> palette()[4]
[1] "blue"
> palette()[2]
[1] "red"
因此,第一列为“A”的点为蓝色,其他点为红色。
,我迟到了我的答案,但它可能仍然是有用的人......
参数col
决定对剧情点的颜色。
# Create some data to plot.
x=1:5
y=x^2
group = c("A", "A", "B", "B", "C")
group == "A" # Outputs a logical vector.
# [1] TRUE TRUE FALSE FALSE FALSE
2 * (1 + (group == "A")) # Changes logical vector to integers.
# [1] 4 4 2 2 2
# col parameter interprets integers as colors for each point in the plot.
plot(x, y, col=2 * (1 + (group == "A")), pch=20, cex=3)
也许还值得一提的是供给到'col'整数被用于含有一组默认颜色()'(由'调色板返回的向量的索引的元素,但也可以是复位由用户)。 – 2012-03-08 20:10:50
@ JoshO'Brien好主意。我已经添加到我的答案。 – 2012-03-08 20:15:25