以下是生成平行坐标图的代码:
require(MASS)
shoes <- data.frame(shoes)
parcoord(shoes)
shoes
数据集用于显示配对t检验的功效,这只是背景信息。鞋子中有两列,A和B,分别代表两种鞋底材料的磨损。正确分析后,材料之间存在巨大差异。
显示配对数据的一种好方法是使用平行坐标图,但是如您所见,没有颜色就几乎没有任何东西。我想添加两种颜色,例如A > B
时为红色,A < B
时为绿色。两种情况都会发生:
> shoes$A > shoes$B
[1] FALSE FALSE FALSE TRUE FALSE TRUE FALSE FALSE FALSE FALSE
我的问题是parcoord()
在观察过程中会循环显示颜色,因此我不确定如何根据逻辑测试指定颜色。我尝试过
parcoord(shoes, col = ifelse(shoes$A > shoes$B, "red", "green"))
和各种不同的数字玩法(除了加26外还有很多)
my_colors <- colors()[as.numeric(shoes$A > shoes$B) + 26]
parcoord(shoes, col = my_colors)
,但似乎没有任何效果。我可以得到一种颜色的光谱,一种颜色,或者一种颜色,除了顶部和底部的条目之外。我希望FALSE
生成一种颜色,TRUE
生成另一种颜色。
答案 0 :(得分:0)
我不确定我是否能直截了当,但是您的条件A > B
仅在shoes
的最大值和最小值时为真。
shoes <- within(shoes, criterium <- ifelse(A > B, "bigger", "smaller"))
A B criterium
1 13.2 14.0 smaller
2 8.2 8.8 smaller
3 10.9 11.2 smaller
4 14.3 14.2 bigger
5 10.7 11.8 smaller
6 6.6 6.4 bigger
7 9.5 9.8 smaller
8 10.8 11.3 smaller
9 8.8 9.3 smaller
10 13.3 13.6 smaller
minmax <- c(min(min(shoes$A), min(shoes$B)), max(max(shoes$A), max(shoes$B)))
> minmax
[1] 6.4 14.3
因此,您的平行坐标图将仅在“红色”中显示顶部和底部条目。换句话说:您的解决方案是正确的。