在R中创建累积步骤图 [英] Creating a cumulative step graph in R

查看:200
本文介绍了在R中创建累积步骤图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有这个示例数据框

  set.seed(12345)
n1 < - 3
n2 < - 10
n3 < - 60

times < - seq(0,100,0.5)

个人< - c (样本(次数,次数,次数,次数,次数,次数,次数, (样本(时间,n3)))

df< - data.frame(individual =个人,事件=事件)

其中给出

 > (df,10)
个人活动
1 1 72.0
2 1 75.5
3 1 87.5
4 2 3.0
5 2 14.5
6 2 16.5
7 2 32.0
8 2 45.5
9 2 50.0
10 2 70.5

我想绘制事件的累积步骤图,以便每次遇到一个事件时,每个个体会得到一个增加1的线。



因此,例如,单个1将从0到72.0,然后上升到1,直到75.5变为2,并且在87.5到图的末尾为3。 p>

最简单的方法是什么?

解决方案

  df $ step < -  1 

library (plyr)
df < - ddply(df,。(individual),transform,step = cumsum(step))

plot(step〜events,data = df [df $ individual == 1,],类型= S,XLIM = C(0,最大值(DF $事件)),ylim = C(0,最大值(DF $步骤)),xlab = 时间,ylab =步骤)
lines(step〜events,data = df [df $ individual == 2,],type =s,col = 2)
lines(step〜events,data = df [df $ individual $ 3,],type =s,col = 3)


Say I have this example data frame

set.seed(12345)
n1 <- 3
n2 <- 10
n3 <- 60

times <- seq(0, 100, 0.5)

individual <- c(rep(1, n1), 
                rep(2, n2), 
                rep(3, n3))

events <- c(sort(sample(times, n1)),
            sort(sample(times, n2)),
            sort(sample(times, n3)))

df <- data.frame(individual = individual, events = events)

Which gives

> head(df, 10)
   individual events
1           1   72.0
2           1   75.5
3           1   87.5
4           2    3.0
5           2   14.5
6           2   16.5
7           2   32.0
8           2   45.5
9           2   50.0
10          2   70.5

I would like to plot a cumulative step graph of the events so that I get one line per individual which goes up by 1 each time an event is "encountered".

So, for instance individual 1 will be 0 up to 72.0, then go up to 1, until 75.5 when it becomes 2 and up to 3 at 87.5 to the end of the graph.

What would be the easiest way to do that?

解决方案

df$step <- 1

library(plyr)
df <- ddply(df,.(individual),transform,step=cumsum(step))

plot(step~events,data=df[df$individual==1,],type="s",xlim=c(0,max(df$events)),ylim=c(0,max(df$step)),xlab="time",ylab="step")
lines(step~events,data=df[df$individual==2,],type="s",col=2)
lines(step~events,data=df[df$individual==3,],type="s",col=3)

这篇关于在R中创建累积步骤图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆