this questionとthis oneに続いて、私は1つのデータセットのカテゴリ変数を要約する最良のオプションが何であるか疑問に思った。dplyr - category形式の複数の列の概要
Iは、
# A tibble: 10 <U+00D7> 4
empstat_couple nssec7_couple3 nchild07 age_couple
<chr> <fctr> <fctr> <dbl>
1 Neo-Trad Lower Managerial 1child 39
2 Neo-Trad Higher Managerial 1child 31
3 Neo-Trad Manual and Routine 1child 33
4 Trad Higher Managerial 1child 43
としてデータセットを有する3つの最初の変数はカテゴリ(文字又は因子)と最後の数値です。私が望む何
は(出力)
var n p
1: Neo-Trad 6 0.6
2: OtherArrangment 2 0.2
3: Trad 2 0.2
4: Higher Managerial 4 0.4
5: Lower Managerial 5 0.5
6: Manual and Routine 1 0.1
7: 1child 9 0.9
8: 2children 1 0.1
まあのための数値変数のようなものですが、私は要約を有意義にそれを追加するかどうかはわからないと思います。
私が行くための最も基本的な方法は、summarise_each
ソリューションが存在していた場合、私は疑問に思い
library(dplyr)
library(data.table)
a = count(dt, empstat_couple) %>% mutate(p = n/sum(n))
b = count(dt, nssec7_couple3) %>% mutate(p = n/sum(n))
c = count(dt, nchild07) %>% mutate(p = n/sum(n))
rbindlist(list(a,b,c))
ですね?
これは私がこの
apply(dt, 2, as.data.frame(table)) %>% rbindlist()
を考え出すことができapply
を使用して
dt %>% summarise_each(funs(count))
を動作しません。しかし、それは素晴らしいではありません。
提案がありますか?
データ
dt = structure(list(empstat_couple = c("Neo-Trad", "Neo-Trad", "Neo-Trad",
"Trad", "OtherArrangment", "Neo-Trad", "Trad", "OtherArrangment",
"Neo-Trad", "Neo-Trad"), nssec7_couple3 = structure(c(2L, 1L,
4L, 1L, 2L, 2L, 1L, 2L, 1L, 2L), .Label = c("Higher Managerial",
"Lower Managerial", "Intermediate", "Manual and Routine"), class = "factor"),
nchild07 = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
1L), .Label = c("1child", "2children", ">2children"), class = "factor"),
age_couple = c(39, 31, 33, 43, 32, 28, 28, 40, 33, 26), hldid = 1:10), .Names = c("empstat_couple",
"nssec7_couple3", "nchild07", "age_couple", "hldid"), row.names = c(NA,
-10L), class = "data.frame")
'p'の計算に関しては正しいですか? – akrun
@akrunそうだと思います。それは単に比率です。 – giacomo