我想将不同主题和不同用户的数据框分组,以生成该主题中每个用户的相对重要性表,例如我的数据框是
Topic User
A U1
A U2
B U2
A U1
B U1
A U1
Run Code Online (Sandbox Code Playgroud)
我想减少它
Topic User Importance
A U1 0.75
A U2 0.25
B U1 0.5
B U2 0.5
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我如何使用R优选dplyr?
这是一种快速的data.table替代方法
library(data.table)
setDT(df)[, as.data.table(table(User)/.N), by = Topic]
# Topic User N
# 1: A U1 0.75
# 2: A U2 0.25
# 3: B U1 0.50
# 4: B U2 0.50
Run Code Online (Sandbox Code Playgroud)
这基本上只是table(User)按组运行,并按组大小划分.N
或者类似的 dplyr
df %>%
group_by(Topic) %>%
do(data.frame(table(.$User)/length(.$User)))
# Source: local data frame [4 x 3]
# Groups: Topic [2]
#
# Topic Var1 Freq
# (fctr) (fctr) (dbl)
# 1 A U1 0.75
# 2 A U2 0.25
# 3 B U1 0.50
# 4 B U2 0.50
Run Code Online (Sandbox Code Playgroud)