按组计算唯一值的数量

Yil*_*ang 5 dataframe julia

我知道combine(groupby(df, :A), nrow=>:count)要计算不同的行数:A:B但是,获取不同的唯一值的数量的正确实现应该是什么:A?基本上,我正在寻找 R: 的对应项df %>% group_by(A) %>% summarize(n_unique = n_distinct(B))。谢谢!

Nil*_*dat 5

我认为你应该能够做到

\n
combine(groupby(df, :A), :B => length \xe2\x88\x98 unique => :n_distint_B)\n
Run Code Online (Sandbox Code Playgroud)\n

像这样:

\n
julia> using DataFrames\n\njulia> df = DataFrame(a = rand(["a", "b"], 20), b = rand(1:5, 20))\n20\xc3\x972 DataFrame\n Row \xe2\x94\x82 a       b     \n     \xe2\x94\x82 String  Int64 \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82 a           3\n   2 \xe2\x94\x82 b           4\n   3 \xe2\x94\x82 a           1\n   4 \xe2\x94\x82 a           1\n   5 \xe2\x94\x82 b           1\n   6 \xe2\x94\x82 a           2\n   7 \xe2\x94\x82 b           4\n   8 \xe2\x94\x82 a           2\n   9 \xe2\x94\x82 b           2\n  10 \xe2\x94\x82 b           1\n  11 \xe2\x94\x82 b           3\n  12 \xe2\x94\x82 b           3\n  13 \xe2\x94\x82 a           4\n  14 \xe2\x94\x82 a           4\n  15 \xe2\x94\x82 b           3\n  16 \xe2\x94\x82 b           2\n  17 \xe2\x94\x82 a           5\n  18 \xe2\x94\x82 a           5\n  19 \xe2\x94\x82 b           5\n  20 \xe2\x94\x82 a           1\n\njulia> combine(groupby(df, :a), :b => length \xe2\x88\x98 unique => :n_distinct_b)\n2\xc3\x972 DataFrame\n Row \xe2\x94\x82 a       n_distinct_b \n     \xe2\x94\x82 String  Int64        \n\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\n   1 \xe2\x94\x82 a                  5\n   2 \xe2\x94\x82 b                  5\n
Run Code Online (Sandbox Code Playgroud)\n