创建 table 个结果并绘制直方图
Create table of results and plot histogram
我经过计算得到了这些结果。
results<-structure(list(`1-2006` = structure(list(a = 2.569609631261,
l = 1.07133133970952, v = 0.0717722617877896, k = 0.942672861627156,
f = 0.388933771611416, mx = 13.5026751665079), .Names = c("a",
"l", "v", "k", "f", "mx")), `1-2007` = structure(list(a = 12.1740785313206,
l = 0.253071159621183, v = 0.00109045670813382, k = 12.1383424353805,
f = 0.382836164409956, mx = 371.57077346378), .Names = c("a",
"l", "v", "k", "f", "mx")), `1-2008` = structure(list(a = 7.61500330474582,
l = 0.480886095894786, v = 0.0169270813765404, k = 2.44342267614725,
f = 0.079954717880489, mx = 22.1891386586908), .Names = c("a",
"l", "v", "k", "f", "mx"))), .Names = c("1-2006", "1-2007", "1-2008"
))
我需要两次操作才能得到结果;
1) 我在导出的 excel 文件
中需要这样的 table
2) 所有 a、l、v、k、f 和 mx 值的直方图。一个图中所有 a
个值,一个图中所有 l
个值等。
要从列表中创建 table,您可以使用 do.call()
:
df <- do.call(rbind.data.frame, results)
#
a l v k f mx
1-2006 2.569610 1.0713313 0.071772262 0.9426729 0.38893377 13.50268
1-2007 12.174079 0.2530712 0.001090457 12.1383424 0.38283616 371.57077
1-2008 7.615003 0.4808861 0.016927081 2.4434227 0.07995472 22.18914
然后可以使用 ggplot2
函数获得直方图 geom_histogram()
:
#example for the first column
library(ggplot2)
ggplot(df, aes(x=a)) + geom_histogram()
您还可以使用 openxlsx
包将 table 保存在 excel 工作簿中,使用不同的样式如下。
list.results <-list(
`1-2006` = list(
¦ a = 2.569609631261,
¦ l = 1.07133133970952,
¦ v = 0.0717722617877896,
¦ k = 0.942672861627156,
¦ f = 0.388933771611416,
¦ mx = 13.5026751665079
),
`1-2007` = list(
¦ a = 12.1740785313206,
¦ l = 0.253071159621183,
¦ v = 0.00109045670813382,
¦ k = 12.1383424353805,
¦ f = 0.382836164409956,
¦ mx = 371.57077346378
),
`1-2008` = list(
¦ a = 7.61500330474582,
¦ l = 0.480886095894786,
¦ v = 0.0169270813765404,
¦ k = 2.44342267614725,
¦ f = 0.079954717880489,
¦ mx = 22.1891386586908
)
)
## Transform list of list to matrix
matrix.results <- do.call(rbind, results)
## Options for default styling (These are the defaults)
options("openxlsx.borderColour" = "black")
options("openxlsx.borderStyle" = "thin")
## Change the default border colour to #4F81BD
options("openxlsx.borderColour" = "#4F81BD")
#######################################################
## Create Workbook object and add worksheets
wb <- createWorkbook()
## Add worksheets
addWorksheet(wb, "results")
x <- matrix.results
#######################################################
## No bordering
writeData(wb, "results", x, startCol = 2, startRow = 3, colNames = TRUE, rowNames = TRUE)
#######################################################
## Header Styles
hs1 <- createStyle(fgFill = "#DCE6F1", halign = "CENTER", textDecoration = "italic",
¦ ¦ ¦ ¦ border = "Bottom")
writeData(wb, "results", x, startCol=2, startRow = 8, colNames = TRUE, rowNames = TRUE,
¦ ¦ borders="rows", headerStyle = hs1, borderStyle = "dashed")
#######################################################
## Save workbook
saveWorkbook(wb, paste(outDir, "results.xlsx", sep = "/"), overwrite = TRUE)
我经过计算得到了这些结果。
results<-structure(list(`1-2006` = structure(list(a = 2.569609631261,
l = 1.07133133970952, v = 0.0717722617877896, k = 0.942672861627156,
f = 0.388933771611416, mx = 13.5026751665079), .Names = c("a",
"l", "v", "k", "f", "mx")), `1-2007` = structure(list(a = 12.1740785313206,
l = 0.253071159621183, v = 0.00109045670813382, k = 12.1383424353805,
f = 0.382836164409956, mx = 371.57077346378), .Names = c("a",
"l", "v", "k", "f", "mx")), `1-2008` = structure(list(a = 7.61500330474582,
l = 0.480886095894786, v = 0.0169270813765404, k = 2.44342267614725,
f = 0.079954717880489, mx = 22.1891386586908), .Names = c("a",
"l", "v", "k", "f", "mx"))), .Names = c("1-2006", "1-2007", "1-2008"
))
我需要两次操作才能得到结果;
1) 我在导出的 excel 文件
中需要这样的 table2) 所有 a、l、v、k、f 和 mx 值的直方图。一个图中所有 a
个值,一个图中所有 l
个值等。
要从列表中创建 table,您可以使用 do.call()
:
df <- do.call(rbind.data.frame, results)
#
a l v k f mx
1-2006 2.569610 1.0713313 0.071772262 0.9426729 0.38893377 13.50268
1-2007 12.174079 0.2530712 0.001090457 12.1383424 0.38283616 371.57077
1-2008 7.615003 0.4808861 0.016927081 2.4434227 0.07995472 22.18914
然后可以使用 ggplot2
函数获得直方图 geom_histogram()
:
#example for the first column
library(ggplot2)
ggplot(df, aes(x=a)) + geom_histogram()
您还可以使用 openxlsx
包将 table 保存在 excel 工作簿中,使用不同的样式如下。
list.results <-list(
`1-2006` = list(
¦ a = 2.569609631261,
¦ l = 1.07133133970952,
¦ v = 0.0717722617877896,
¦ k = 0.942672861627156,
¦ f = 0.388933771611416,
¦ mx = 13.5026751665079
),
`1-2007` = list(
¦ a = 12.1740785313206,
¦ l = 0.253071159621183,
¦ v = 0.00109045670813382,
¦ k = 12.1383424353805,
¦ f = 0.382836164409956,
¦ mx = 371.57077346378
),
`1-2008` = list(
¦ a = 7.61500330474582,
¦ l = 0.480886095894786,
¦ v = 0.0169270813765404,
¦ k = 2.44342267614725,
¦ f = 0.079954717880489,
¦ mx = 22.1891386586908
)
)
## Transform list of list to matrix
matrix.results <- do.call(rbind, results)
## Options for default styling (These are the defaults)
options("openxlsx.borderColour" = "black")
options("openxlsx.borderStyle" = "thin")
## Change the default border colour to #4F81BD
options("openxlsx.borderColour" = "#4F81BD")
#######################################################
## Create Workbook object and add worksheets
wb <- createWorkbook()
## Add worksheets
addWorksheet(wb, "results")
x <- matrix.results
#######################################################
## No bordering
writeData(wb, "results", x, startCol = 2, startRow = 3, colNames = TRUE, rowNames = TRUE)
#######################################################
## Header Styles
hs1 <- createStyle(fgFill = "#DCE6F1", halign = "CENTER", textDecoration = "italic",
¦ ¦ ¦ ¦ border = "Bottom")
writeData(wb, "results", x, startCol=2, startRow = 8, colNames = TRUE, rowNames = TRUE,
¦ ¦ borders="rows", headerStyle = hs1, borderStyle = "dashed")
#######################################################
## Save workbook
saveWorkbook(wb, paste(outDir, "results.xlsx", sep = "/"), overwrite = TRUE)