我是R的初学者,目前正在研究R生成的图形。 通常,大多数数据示例都是ggplot2中的钻石:
carat cut color clarity depth table price x y z
0.2 Ideal E SI2 61.5 55.0 326 3.95 3.98 2.43
0.2 Premium E SI1 59.8 61.0 326 3.89 3.84 2.31
0.2 Good E VS1 56.9 65.0 327 4.05 4.07 2.31
0.3 Premium I VS2 62.4 58.0 334 4.20 4.23 2.63
0.3 Good J SI2 63.3 58.0 335 4.34 4.35 2.75
0.2 Very Good J VVS2 62.8 57.0 336 3.94 3.96 2.48
这意味着如果绘制箱线图,R将首先根据切割对数据进行排序。相反,如下数据集如何:
cut price1 price2 price3
Good 0.68 0.89 0.74
Medium 0.12 0.35 0.26
这是否意味着每个类别中的所有值都是预先排序的?我想知道用什么方法处理这种类型的数据来绘制boxplot。
答案 0 :(得分:2)
你可能想要做的是"融化"您的数据(从"宽"转换为" long"格式)。例如:
# Melt your dataset
library(reshape2)
# Here we melt dataset by "cut" (ie, we group by this column)
dataset_melt <- melt(dataset, "cut")
# How melted dataset looks like
# cut variable value
# 1: Good price1 0.68
# 2: Medium price1 0.12
# 3: Good price2 0.89
# 4: Medium price2 0.35
# 5: Good price3 0.74
# 6: Medium price3 0.26
# Plot melted dataset
library(ggplot2)
ggplot(dataset_melt, aes(cut, value)) +
geom_boxplot()