括号中的标准偏差:Latex R
Standard Deviation in parenthesis: Latex R
我想要数据框括号中的标准偏差。由于我使用的是 Latex,因此我希望输出类似于:meanValue (sdValue).
我拥有的数据框包含我感兴趣的每个变量的均值和标准差值列。
例如,您如何将标准差放在括号中?
iris %>% group_by(Species) %>% summarize(MeanPetal = mean(Petal.Length), sdPetal = sd(Petal.Length))
计算 sdPetal
时使用一些格式化函数。例如,
library(tidyverse)
iris %>% group_by(Species) %>% summarize(MeanPetal = mean(Petal.Length),
sdPetal = sprintf("(%.2f)", sd(Petal.Length)))
#> `summarise()` ungrouping output (override with `.groups` argument)
#> # A tibble: 3 x 3
#> Species MeanPetal sdPetal
#> <fct> <dbl> <chr>
#> 1 setosa 1.46 (0.17)
#> 2 versicolor 4.26 (0.47)
#> 3 virginica 5.55 (0.55)
由 reprex package (v0.3.0)
于 2020-11-28 创建
如果你想在 LaTeX 中使用它,只需通过 knitr::kable
:
library(tidyverse)
library(knitr)
iris %>%
group_by(Species) %>%
summarize(MeanPetal = mean(Petal.Length),
sdPetal = sprintf("(%.2f)", sd(Petal.Length)),
.groups = "keep") %>%
kable(format = "latex") %>% cat
#>
#> \begin{tabular}{l|r|l}
#> \hline
#> Species & MeanPetal & sdPetal\
#> \hline
#> setosa & 1.462 & (0.17)\
#> \hline
#> versicolor & 4.260 & (0.47)\
#> \hline
#> virginica & 5.552 & (0.55)\
#> \hline
#> \end{tabular}
由 reprex package (v0.3.0)
于 2020-11-28 创建
(您可能需要也可能不需要最后的 cat
,具体取决于
您正在使用此代码。我需要它,因为我正在使用 reprex::reprex
生成 Markdown 代码。)
如果你可以接受一个 +-
符号来显示 LaTeX 中的标准偏差,那么有一个包 qwraps2
具有函数 mean_sd()
,它计算并转换平均值和标准偏离乳胶友好的输出格式。输出可以通过包 xtable
导出到 LaTeX。
这是一个示例代码:
(为了好玩,我添加了 Sepal.Length
的统计数据)
library(tidyverse)
library(xtable)
library(qwraps2)
df <- iris %>%
group_by(Species) %>%
summarize(across(c(Petal.Length,Sepal.Length), mean_sd, digits = 3))
df
生成:
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 3 x 3
Species Petal.Length Sepal.Length
<fct> <chr> <chr>
1 setosa "1.462 $\pm$ 0.174" "5.006 $\pm$ 0.352"
2 versicolor "4.260 $\pm$ 0.470" "5.936 $\pm$ 0.516"
3 virginica "5.552 $\pm$ 0.552" "6.588 $\pm$ 0.636"
使用 xtable
.
导出到 LaTeX
df %>%
xtable() %>%
print.xtable(type = "latex",
sanitize.text.function = function(x){x})
导致 LaTeX 代码:
% latex table generated in R 3.6.0 by xtable 1.8-4 package
% Mon Jan 11 20:06:07 2021
\begin{table}[ht]
\centering
\begin{tabular}{rlll}
\hline
& Species & Petal.Length & Sepal.Length \
\hline
1 & setosa & 1.462 $\pm$ 0.174 & 5.006 $\pm$ 0.352 \
2 & versicolor & 4.260 $\pm$ 0.470 & 5.936 $\pm$ 0.516 \
3 & virginica & 5.552 $\pm$ 0.552 & 6.588 $\pm$ 0.636 \
\hline
\end{tabular}
\end{table}
编辑----------------
mean_sd()
里面居然有设置括号的方法
df <- iris %>%
group_by(Species) %>%
summarize(across(c(Petal.Length,Sepal.Length), mean_sd, digits = 3, denote_sd = "paren"))
df
控制台输出:
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 3 x 3
Species Petal.Length Sepal.Length
<fct> <chr> <chr>
1 setosa 1.462 (0.174) 5.006 (0.352)
2 versicolor 4.260 (0.470) 5.936 (0.516)
3 virginica 5.552 (0.552) 6.588 (0.636)
我想要数据框括号中的标准偏差。由于我使用的是 Latex,因此我希望输出类似于:meanValue (sdValue).
我拥有的数据框包含我感兴趣的每个变量的均值和标准差值列。
例如,您如何将标准差放在括号中?
iris %>% group_by(Species) %>% summarize(MeanPetal = mean(Petal.Length), sdPetal = sd(Petal.Length))
计算 sdPetal
时使用一些格式化函数。例如,
library(tidyverse)
iris %>% group_by(Species) %>% summarize(MeanPetal = mean(Petal.Length),
sdPetal = sprintf("(%.2f)", sd(Petal.Length)))
#> `summarise()` ungrouping output (override with `.groups` argument)
#> # A tibble: 3 x 3
#> Species MeanPetal sdPetal
#> <fct> <dbl> <chr>
#> 1 setosa 1.46 (0.17)
#> 2 versicolor 4.26 (0.47)
#> 3 virginica 5.55 (0.55)
由 reprex package (v0.3.0)
于 2020-11-28 创建如果你想在 LaTeX 中使用它,只需通过 knitr::kable
:
library(tidyverse)
library(knitr)
iris %>%
group_by(Species) %>%
summarize(MeanPetal = mean(Petal.Length),
sdPetal = sprintf("(%.2f)", sd(Petal.Length)),
.groups = "keep") %>%
kable(format = "latex") %>% cat
#>
#> \begin{tabular}{l|r|l}
#> \hline
#> Species & MeanPetal & sdPetal\
#> \hline
#> setosa & 1.462 & (0.17)\
#> \hline
#> versicolor & 4.260 & (0.47)\
#> \hline
#> virginica & 5.552 & (0.55)\
#> \hline
#> \end{tabular}
由 reprex package (v0.3.0)
于 2020-11-28 创建(您可能需要也可能不需要最后的 cat
,具体取决于
您正在使用此代码。我需要它,因为我正在使用 reprex::reprex
生成 Markdown 代码。)
如果你可以接受一个 +-
符号来显示 LaTeX 中的标准偏差,那么有一个包 qwraps2
具有函数 mean_sd()
,它计算并转换平均值和标准偏离乳胶友好的输出格式。输出可以通过包 xtable
导出到 LaTeX。
这是一个示例代码:
(为了好玩,我添加了 Sepal.Length
的统计数据)
library(tidyverse)
library(xtable)
library(qwraps2)
df <- iris %>%
group_by(Species) %>%
summarize(across(c(Petal.Length,Sepal.Length), mean_sd, digits = 3))
df
生成:
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 3 x 3
Species Petal.Length Sepal.Length
<fct> <chr> <chr>
1 setosa "1.462 $\pm$ 0.174" "5.006 $\pm$ 0.352"
2 versicolor "4.260 $\pm$ 0.470" "5.936 $\pm$ 0.516"
3 virginica "5.552 $\pm$ 0.552" "6.588 $\pm$ 0.636"
使用 xtable
.
df %>%
xtable() %>%
print.xtable(type = "latex",
sanitize.text.function = function(x){x})
导致 LaTeX 代码:
% latex table generated in R 3.6.0 by xtable 1.8-4 package
% Mon Jan 11 20:06:07 2021
\begin{table}[ht]
\centering
\begin{tabular}{rlll}
\hline
& Species & Petal.Length & Sepal.Length \
\hline
1 & setosa & 1.462 $\pm$ 0.174 & 5.006 $\pm$ 0.352 \
2 & versicolor & 4.260 $\pm$ 0.470 & 5.936 $\pm$ 0.516 \
3 & virginica & 5.552 $\pm$ 0.552 & 6.588 $\pm$ 0.636 \
\hline
\end{tabular}
\end{table}
编辑----------------
mean_sd()
df <- iris %>%
group_by(Species) %>%
summarize(across(c(Petal.Length,Sepal.Length), mean_sd, digits = 3, denote_sd = "paren"))
df
控制台输出:
`summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 3 x 3
Species Petal.Length Sepal.Length
<fct> <chr> <chr>
1 setosa 1.462 (0.174) 5.006 (0.352)
2 versicolor 4.260 (0.470) 5.936 (0.516)
3 virginica 5.552 (0.552) 6.588 (0.636)