继上一个查询
vocab
w text
1 archive
2 name
3 atheism
4 resources
5 alt
df
w n d w_d tw_d tw_n w_n P(W_j)
1 1 196 3 1240 47821 2 0.028130269
1 1 47 2 1220 47821 2 0.028130269
2 12 4434 1 702 47490 8 0.035051912
3 12 4434 1 673 47490 8 0.035051912
5 12 4398 1 53 47490 8 0.4
3 12 4564 11 1539 47490 8 0.035051912
对于df中的每个d,我需要计算以下公式,并考虑到vocab数据帧中的所有w's
例如在d = 4434的情况下,
df$ans <- max(log(0.3505))+sum(log(47490/844174)+log(47490/844174)) # value when d=4434 and n =12
类似地,对于d = 4434,我需要计算n = 1到20的所有值
对于
中的每个d值max(log(0.02813027)+sum(log(2/47821),log(2/47821)))
= -23.73506
我现在有以下代码:
df$ans<- pmax(log(df$`P(W_j)`)+(log(df$'w_n'/df$'tw_n') +
log(df$'w_n'/df$'tw_n')),
log(df$'w_n'/df$'tw_n'))
我正在尝试的另一种基于建议的方式是:
df %>%
group_by(d)
mutate(ans = pmax(log(P(W_j))+(log(w_n/tw_n) +
log('w_n'/'tw_n')),
log('w_n'/'tw_n'))