首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R:将行合并为多个度量

R:将行合并为多个度量
EN

Stack Overflow用户
提问于 2013-07-09 23:58:37
回答 3查看 94关注 0票数 1

我正在尝试构建一个数据表,然后我可以使用它进行进一步的分析(例如,生成箱图)。

我得到的数据看起来是这样的(注意不同的测量数量):

代码语言:javascript
运行
复制
measurement_option, measurement
option1, 11.3
option1, 12.7,
option2, 19.3,
option2, 9.7
option2, 12.1

我想做的就是得到这个

代码语言:javascript
运行
复制
option1, 11.3, 12.7
option2, 19.3, 9.7, 12.1

我见过使用reshape的人(不过我需要一个时间变量,对吧?)和cast,但老实说,我无法同时使用这两个命令来生成如上所示的列表。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-07-10 00:03:04

您不需要为使用ggplot的boxplot做更多的工作。

代码语言:javascript
运行
复制
ggplot(data = df, aes(x = measurement_option, y = measurement)) + 
geom_boxplot()

应该做你想做的事。详情请参见the ggplot manual

票数 3
EN

Stack Overflow用户

发布于 2013-07-10 00:08:01

正如@LostBrit所指出的那样,你的数据已经是最适合绘图的格式了。例如,假设您的data.frame名为"mydf",您可以简单地这样做:

代码语言:javascript
运行
复制
boxplot(measurement ~ measurement_option, mydf)

如果您真的希望数据采用您所显示的格式(但是,我不知道如何轻松地进行进一步的绘图),那么您实际上应该考虑的函数是aggregate。假设您的data.frame名为"mydf",您可以使用as.vector作为聚合函数:

代码语言:javascript
运行
复制
> 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
EN

Stack Overflow用户

发布于 2013-07-10 00:09:32

代码语言:javascript
运行
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17552846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档