首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从列(数据帧)中选择匹配的行值,使用R中的循环创建绘图

从列(数据帧)中选择匹配的行值,使用R中的循环创建绘图
EN

Stack Overflow用户
提问于 2012-12-12 01:15:54
回答 1查看 718关注 0票数 1

我有一组这样的数据,

物种<-“ABC”ind<-rep(1:4,each=24)小时<-rep<-rep(seq(0,23,by=1),4)深度<-runif(长度(Ind),1,50)df<-data.framework(cbind(物种,ind,小时,深度))df$深度<-as.数值(df$埋深)

在这个例子中,列"ind“有更多的级别,并且它们的长度并不总是相同的(这里每个个体都有4个级别,但实际上有些人有数千行数据,而其他的只有几行)。

我想要做的是有一个外部循环或函数,它将从每个个体("ind")中选择所有行,并使用深度/小时列生成一个盒子图。

这就是我心中的想法,

(i in 1:length(df$ind)){ data<-df[df$ind==df$indi,]个人化<-data plot.box<-function<-function(Data){box图(深度~小时,dat=data,xlab="Hour of day",ylab=“深度(m)") }}mfrow=c(2,2),mar=c(5,4,3,1)plot.boxplot(个人)

我意识到这个循环可能是不合适的,但我仍然在学习。我可以一次为每个人绘制盒图,但是我想要一种更快、更有效的方法来为每个个体选择数据,并创建或存储盒图结果。这将是非常有用的,当我有更多的个人(而不是一次一个.)。提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-12-12 01:37:46

像这样的东西怎么样?

代码语言:javascript
运行
复制
par(mfrow=c(2,2))
invisible(
  by(df,df$ind,
    function(x)
      boxplot(depth~hour,data=x,xlab="Hour of day",ylab="Depth (m)")
    )
)

为了提供一些解释,这将为df定义的by df$ind中的每一组案例运行一个byinvisible包装器只是使用于boxplot的输出不被写入控制台。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13831240

复制
相关文章

相似问题

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