我正在尝试构建一个数据表,然后我可以使用它进行进一步的分析(例如,生成箱图)。
我得到的数据看起来是这样的(注意不同的测量数量):
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,但老实说,我无法同时使用这两个命令来生成如上所示的列表。
发布于 2013-07-10 00:03:04
您不需要为使用ggplot的boxplot做更多的工作。
ggplot(data = df, aes(x = measurement_option, y = measurement)) +
geom_boxplot()应该做你想做的事。详情请参见the ggplot manual。
发布于 2013-07-10 00:08:01
正如@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。
发布于 2013-07-10 00:09:32
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.1https://stackoverflow.com/questions/17552846
复制相似问题