頻度、累積頻度、列の割合、累積列のパーセンテージの列を持つ書式設定されたhtmlテーブルを作成しようとしています。テーブルには、グループ化変数によってサブセット化され、グループ合計を含むデータも必要です。R個の "テーブル"パッケージを使用した累積カウント/パーセンテージとグループ合計を持つ美しいテーブル
私はこれをdplyrとtidyrの組み合わせでほぼ達成できますが、出力はそれほど美しく見えないデータフレームです。 tables::tabulate
コマンドを使用すると簡単な方法があるのだろうか?
# Sample data
dat <- data.frame(
id = 1:100,
group = factor(sample(c("A", "B"), 100, replace = TRUE)),
sessions = factor(sample(1:10, 100, replace = TRUE))
)
# dplyr/tidyr solution
library(dplyr)
library(tidyr)
dat %>%
group_by(group, sessions) %>%
tally() %>%
spread(key = group, value = n) %>%
mutate(All = rowSums(.[-1])) %>%
gather(key = group, value = n, -sessions) %>%
group_by(group) %>%
mutate(
cum_n = cumsum(n),
p = round(n/sum(n)*100,1),
cum_p = round(cum_n/sum(n)*100,1),
) %>%
data.frame() %>%
reshape(timevar = "group", idvar = "sessions", direction = "wide")
# As far as I get using tables::tabulate
library(tables)
tabular(
Factor(sessions, "Sessions") ~
(Heading()*group + 1) *
(
(n = 1) +
# (cum_n = ??) +
Heading("%")*Percent(denom = "col")*Format(digits = 2)
# + Heading("cum_%")*??*Format(digits = 2)
),
data = dat
)
何をしようとする私には明らかではないが、あなたが必要なすべてのデータを持つ単純なdata.frameを作成することができれば、あなたはその後、HTMLテーブルに変換し可能性があり[tableHTML](https://cran.r-project.org/web/packages/tableHTML/vignettes/tableHTML.html)を使って好きなCSSを使ってください。 – LyzandeR
@LyzandeRありがとうございます。私はあなたのリンクが非常にうまく立証しているネスト/マージされた列見出しを特に見ていたと思います。 – JWilliman
パーフェクト、私は助けることができてうれしいよ:) – LyzandeR