2016-06-18 524 views
1

我正在尝试创建平均值±标准错误的摘要表。到目前为止,我已经设法从SummarySE函数中提取平均值和se列,但是现在我被卡住了,无法弄清楚如何获取列名和行名。SummarySE函数的已发布摘要表,R

数据:

structure(list(TREATMENT = c("A", "A", "A", "B", "B", "B", "C", 
"C", "C", "D", "D", "D", "A", "A", "A", "B", "B", "B", "C", "C", 
"C", "D", "D", "A", "A", "A", "B", "B", "B", "C", "C", "C", "D", 
"D"), TIME = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2), `Species 1` = c(1.64963636363636, 
1.6574, 1.58190909090909, 1.6365, 1.75075, 1.83825, 2.247, 1.95557142857143, 
2.35236363636364, 1.82253333333333, 1.37785714285714, 1.37892857142857, 
2.952125, 3.33311111111111, 3.0967, 3.3912, 3.89709090909091, 
3.51207692307692, 6.6176, 8.41072727272727, 7.3625, 7.19133333333333, 
4.88216666666667, 4.770625, 28.371125, 6.8786, 4.10457142857143, 
13.232, 8.66828571428571, 14.6534615384615, 51.7823333333333, 
42.5318333333333, 20.2263333333333, 13.396), `Species 2` = c(2.36021428571429, 
2.30930769230769, 3.01018181818182, 2.0195, 1.97107142857143, 
2.07614285714286, 1.85307142857143, 2.2695, 2.29286666666667, 
1.9504375, 1.95207142857143, 2.2144375, 2.57385714285714, 2.865, 
2.92928571428571, 2.8453, 2.63855555555556, 4.15657142857143, 
2.807375, 3.554, 6.12177777777778, 2.65541666666667, 3.7972, 
1.285, 4.755, 4.271, 2.5925, 2.83158333333333, 4.638, 16.8010833333333, 
13.1841666666667, 20.418, 3.24075, 3.0115), `Species 3` = c(2.1960625, 
2.28214285714286, 3.05583333333333, 2.16986666666667, 2.06655, 
2.54166666666667, 1.81271428571429, 1.89566666666667, 2.3227, 
2.80616666666667, 2.05, 1.97592857142857, 3.44611111111111, 1.745, 
2.9208, 4.6525, 3.89709090909091, 2.69244444444444, 2.7464, 5.93042857142857, 
5.18888888888889, 3.8943125, 4.054, 6.11511111111111, 2.518125, 
5.2216, 5.16908333333333, 2.59, 2.55716666666667, 9.12085714285714, 
31.5835714285714, 17.227, 5.98033333333333, 5.21509090909091), 
`Species 4` = c(2.00981818181818, 2.7604, 3.5535, 2.39085714285714, 
3.00138888888889, 2.835, 2.25311111111111, 3.00791666666667, 
2.55933333333333, 2.13933333333333, 2.331, 2.94761111111111, 
3.66525, 7.304125, 3.14788888888889, 7.37175, 5.1192, 4.46957142857143, 
2.73258333333333, 15.4874166666667, 5.9237, 4.81615384615384, 
3.7743, 8.0213, 28.192, 17.6561111111111, 17.3084375, 7.81390909090909, 
3.849, 9.618, 53.8383, 10.2361111111111, 17.9905454545455, 
5.6655)), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, 
-34L), .Names = c("TREATMENT", "TIME", "Species 1", "Species 2", 
"Species 3", "Species 4")) 

尝试:

library(Rmisc) 
library(Reshape2) 

melt <- melt(example, id=c("TREATMENT", "TIME"), value.name="growth", variable.name = "Species") 

x <- summarySE(melt, measurevar = "growth", groupvars = c("TIME", "TREATMENT", "Species")) 

xmean<-signif(x[,5],digits=3) 

xse<-signif(x[,7],digits=3) 

x<-paste(xmean,xse,sep=" \u00b1 ") 

x 

产地:

[1] "1.63 ± 0.024" "2.56 ± 0.226" "2.51 ± 0.273" "2.77 ± 0.446" "1.74 ± 0.0584" "2.02 ± 0.0304" "2.26 ± 0.144" 

我有一种感觉,我要对这个很长的路要走,有没有这样的东西一个创建发布就绪表的软件包?就像ggplot2的表格版本。我似乎无法找到任何东西。

+0

我得到:'错误膏(XM,XSE 09月= “±”):对象 'XM'找不到' –

回答

1

嗯,我似乎无法弄清楚你总结了什么。我没有Rmisc包,但假设你得到正确的答案,你可以将它包装在一个数据帧,并给每个测量行名称:

d=data.frame(summary=x, row.names=colnames(example)[3:ncol(example)]) 

哪个比如说,如果你按品种进行了总结是这样的:

   summary 
Species.1 1.852 ± 0.28 
Species.2 2.24 ± 0.338 
Species.3 2.26 ± 0.371 
Species.4 2.708 ± 0.465 

编辑:既然summarySE输出已经是一个数据帧,您只需要创建一个新的列对数据进行格式化你想要的方式方法,那么重塑如何你希望它看起来最终。这里有一个例子,在您的使用reshape2的保持:

x$summary = paste(round(x$growth, 3), "\u00b1", round(x$se, 3)) 
dcast(x, TIME+TREATMENT~Species, value.var='summary') 

输出:

TIME TREATMENT  Species 1  Species 2  Species 3  Species 4 
1  0   A 1.63 ± 0.024 2.56 ± 0.226 2.511 ± 0.273 2.775 ± 0.446 
2  0   B 1.742 ± 0.058 2.022 ± 0.03 2.259 ± 0.144 2.742 ± 0.182 
3  0   C 2.185 ± 0.119 2.138 ± 0.143 2.01 ± 0.158 2.607 ± 0.219 
4  0   D 1.526 ± 0.148 2.039 ± 0.088 2.277 ± 0.265 2.473 ± 0.244 
5  1   A 3.127 ± 0.111 2.789 ± 0.109 2.704 ± 0.503 4.706 ± 1.308 
6  1   B  3.6 ± 0.153 3.213 ± 0.475 3.747 ± 0.571 5.654 ± 0.879 
7  1   C 7.464 ± 0.52 4.161 ± 1.004 4.622 ± 0.962 8.048 ± 3.832 
8  1   D 6.037 ± 1.155 3.226 ± 0.571 3.974 ± 0.08 4.295 ± 0.521 
9  2   A 13.34 ± 7.54 3.437 ± 1.085 4.618 ± 1.081 17.956 ± 5.825 
10 2   B 8.668 ± 2.635 3.354 ± 0.646 3.439 ± 0.865 9.657 ± 3.993 
11 2   C 36.323 ± 11.159 16.801 ± 2.088 19.31 ± 6.568 24.564 ± 14.638 
12 2   D 16.811 ± 3.415 3.126 ± 0.115 5.598 ± 0.383 11.828 ± 6.163 
+0

嗨,谢谢你的帮助。我现在已经包含了所有的数据,所以你可以看到我在做什么(我希望)。 :) –

+0

@ J.Con好吧,我安装了Rmisc软件包,并想我看到你现在在做什么。看看这是你在找什么。 – Teajay

+0

非常感谢。这种布局是我在寻找的,但我猜想我有一些像ggplot2的表格版本,并且表格是一种美观的网格格式。也许这不存在。我将编辑我的问题。再次感谢! –