итерация с одним из столбцов в датафрейме - PullRequest
0 голосов
/ 22 февраля 2019

В продолжение моего предыдущего запроса

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

Для каждого d в df мне нужно вычислить следующие формулы, принимая во внимание все w из вокабеля dataframe

, например, в случаеd = 4434,

df$ans <- max(log(0.3505))+sum(log(47490/844174)+log(47490/844174)) # value when d=4434 and n =12

Аналогично, мне нужно вычислить все значения от n = 1 до 20 для d = 4434

для каждого значения 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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...