使用数据框中的列之一进行迭代

时间:2019-02-22 10:38:20

标签: r dataframe

继上一个查询

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'))

0 个答案:

没有答案