R:处理data.frame中的值连接和平均的最佳函数是什么?

Joh*_*n 3 average r concatenation dataframe

我有一个来自此代码的data.frame:

   my_df = data.frame("read_time" = c("2010-02-15", "2010-02-15", 
                                      "2010-02-16", "2010-02-16", 
                                       "2010-02-16", "2010-02-17"), 
                      "OD" = c(0.1, 0.2, 0.1, 0.2, 0.4, 0.5) )
Run Code Online (Sandbox Code Playgroud)

产生这个:

> my_df
   read_time  OD
1 2010-02-15 0.1
2 2010-02-15 0.2
3 2010-02-16 0.1
4 2010-02-16 0.2
5 2010-02-16 0.4
6 2010-02-17 0.5
Run Code Online (Sandbox Code Playgroud)

我想在每个不同的read_time上平均OD列(注意一些是其他人没有复制的),我也想计算标准差,产生这样的表:

> my_df
   read_time  OD        stdev
1 2010-02-15 0.15       0.05
5 2010-02-16 0.3         0.1
6 2010-02-17 0.5         0
Run Code Online (Sandbox Code Playgroud)

哪个是处理在data.frame中连接这些值的最佳函数?

Dir*_*tel 7

plyr包是流行的这一点,但基本的功能by()aggregate()也将有所帮助.

> ddply(my_df, "read_time", function(X) data.frame(OD=mean(X$OD),stdev=sd(X$OD)))
   read_time      OD   stdev
1 2010-02-15 0.15000 0.07071
2 2010-02-16 0.23333 0.15275
3 2010-02-17 0.50000      NA
Run Code Online (Sandbox Code Playgroud)

您可以添加缺失位以返回0而不是最后一个std.dev的NA.

此外,您不需要data.frame构造中的引号(在变量上).