以前没遇到过这种情况。从pairs.panels
in package的帮助页面中psych
,可以找到以下内容:
data(iris)
pairs.panels(iris[1:4],bg=c("red","yellow","blue")[iris$Species],pch=21)
我想问一下这个论点,它设置了为数据点绘制的圆圈的背景颜色:bg=c("red","yellow","blue")[iris$Species]
显然,这个论点将 的 3 个级别(iris$Species
一个因子)与给定的 3 种颜色相关联。我不是在问它的作用。
我想知道这种将传递的参数与动态数据级别相关联的方法是什么,以及它在哪里记录?好像有R
什么魔力。如果我正在编写这个函数,我可能会分别传递因子的颜色和列名,然后在幕后手动进行关联。这个技巧可能非常有用。但从表面[iris$Species]
上看,数据似乎在为自己编制索引。例如,您不能[iris$Species]
在控制台中输入,它只会给出错误。您可以输入c("red","yellow","blue")[iris$Species]
并获得正确答案。似乎可能正在进行一些回收,但我不确定。我很好奇这是在哪里记录的,是否有人可以用一两句话解释发生了什么。例如,是[iris$Species]
被转换为整数,然后用于索引 3 种颜色的列表?我想就是这样,但我想要另一种意见。
注意:相同的技巧用于graphics::pairs
基于哪个panels.pairs
。