Как применить функцию из пакета к кадру данных - PullRequest
0 голосов
/ 01 октября 2018

Как я могу применить функцию пакета к фрейму данных?
У меня есть набор данных (df) с двумя столбцами (total и n), к которым я хотел бы применить функцию pois.exact (pois.exact).(x, pt = 1, conf.level = 0.95)) из пакета epitools с x = df $ n и pt = df $ total f и получите «новый» фрейм данных (new_df) с еще 3 столбцами с соответствующим округленнымВычисляемая скорость, нижняя и верхняя CI?

 df <- data.frame("total" = c(35725302,35627717,34565295,36170648,38957933,36579643,29628394,18212075,39562754,1265055), "n" = c(24,66,166,461,898,1416,1781,1284,329,12))


> df
      total    n
1  35725302   24
2  35627717   66
3  34565295  166
4  36170648  461
5  38957933  898
6  36579643 1416
7  29628394 1781
8  18212075 1284
9   9562754  329

На самом деле, датафрейм гораздо длиннее.Например, для первой строки желаемые результаты:

require (epitools)
round (pois.exact (24, pt = 35725302, conf.level = 0.95)* 100000, 2)[3:5]
rate lower upper
1 0.07  0.04   0.1

Новый фрейм данных с добавленными результатами с помощью функции pois.exact должен выглядеть следующим образом.

 > new_df
     total    n incidence lower_95IC uppper_95IC
1 35725302   24      0.07       0.04        0.10
2 35627717   66      0.19       0.14        0.24
3 34565295  166      0.48       0.41        0.56
4 36170648  461      1.27       1.16        1.40
5 38957933  898      2.31       2.16        2.46
6 36579643 1416      3.87       3.67        4.08
7 29628394 1781      6.01       5.74        6.03
8 18212075 1284      7.05       6.67        7.45
9  9562754  329      3.44       3.08        3.83

Спасибо.

1 Ответ

0 голосов
/ 01 октября 2018
df %>% 
  cbind( pois.exact(df$n, df$total) ) %>%
  dplyr::select( total, n, rate, lower, upper )

#       total    n       rate      lower      upper
# 1  35725302   24 1488554.25 1488066.17 1489042.45
# 2  35627717   66  539813.89  539636.65  539991.18
# 3  34565295  166  208224.67  208155.26  208294.10
# 4  36170648  461   78461.28   78435.71   78486.85
# 5  38957933  898   43383.00   43369.38   43396.62
# 6  36579643 1416   25833.08   25824.71   25841.45
# 7  29628394 1781   16635.82   16629.83   16641.81
# 8  18212075 1284   14183.86   14177.35   14190.37
# 9  39562754  329  120251.53  120214.06  120289.01
# 10  1265055   12  105421.25  105237.62  105605.12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...