我正在尝试构建一个数据表,然后我可以将其用于进一步分析(例如,生成箱图)。
我给出的数据看起来像这样(注意各种测量数量):
measurement_option, measurement
option1, 11.3
option1, 12.7,
option2, 19.3,
option2, 9.7
option2, 12.1
我想做的是得到这个
option1, 11.3, 12.7
option2, 19.3, 9.7, 12.1
我见过有人使用reshape
(虽然为此我需要一个时间变量,对吗?)和cast
,但说实话我无法获得两个命令来生成一个列表如上所示。
答案 0 :(得分:3)
你不需要为使用ggplot的箱图做更多的事情。
ggplot(data = df, aes(x = measurement_option, y = measurement)) +
geom_boxplot()
应该做你想做的事。有关详细信息,请参阅the ggplot manual。
答案 1 :(得分:2)
正如@LostBrit正确指出的那样,您的数据已经是最佳的绘图格式。例如,假设您的data.frame
被称为“mydf”,您只需执行以下操作:
boxplot(measurement ~ measurement_option, mydf)
如果你真的想要你所展示的格式的数据(但是,我不知道你将如何轻松地进行更多的绘图),你实际应该看到的函数是aggregate
。假设您的data.frame
被称为“mydf”,您可以使用as.vector
作为聚合函数:
> aggregate(measurement ~ measurement_option, mydf, as.vector)
measurement_option measurement
1 option1 11.3, 12.7
2 option2 19.3, 9.7, 12.1
但请注意,“度量”现在为list
。
答案 2 :(得分:0)
library(data.table)
dt = fread('measurement_option,measurement
option1,11.3
option1,12.7
option2,19.3
option2,9.7
option2,12.1')
# or
# dt = data.table(your_data_frame)
dt[, list(list(measurement)), by = measurement_option]
# measurement_option V1
#1: option1 11.3,12.7
#2: option2 19.3,9.7,12.1