I would like to summarize my experimental data every time a condition changes.
For example:
> df=data.frame(tos=1:9, temp=rep(c(25,50,25), each=3), response=c(3.2,3.3,3.3, 6.5, 6.5, 6.5, 3.5,3.6,3.5))
> df
    time temp response
1   1   25      3.2
2   2   25      3.3
3   3   25      3.3
4   4   50      6.5
5   5   50      6.5
6   6   50      6.5
7   7   25      3.5
8   8   25      3.6
9   9   25      3.5
I would like to summarize this in this way:
temp response.mean
25      3.3
50      6.5
25      3.5
If use ddply like this:
library(plyr)
ddply(df, c("temp"), summarize, reponse.mean=mean(response)
the output is:
  temp response.mean
1   25           3.4
2   50           6.5
Is there a way 开发者_JAVA百科to accomplish this?
Here is one way to accomplish this
# find how many observations in each experiment
tmp1    = rle(df$temp)$lengths
# create a column referring to experiment number
df$expt = rep(1:length(tmp1), tmp1)
# compute means for each combination of temp and expt
ddply(df, .(expt, temp), summarize, response.mean = mean(response))
This produces the output
   expt temp response.mean
1    1   25      3.266667
2    2   50      6.500000
3    3   25      3.533333
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论