计算其他列中给定数据的概率

时间:2018-06-29 05:37:15

标签: r

我有一个txt,其中包含以下数据:

ranking index  tornado reports   hail reports   wind reports
0.3968208   9   1   7
0.156263    2   0   3
0.1444246   10  1   7
0.2830781   7   2   6
0.1258707   12  0   2
0.2452705   6   0   6
0.07492937  6   2   8
0.1862151   8   1   5
0.3258324   6   2   17
0.09579834  2   2   10
0.8557362   11  3   14
0.05694438  8   3   9
0.6755703   4   3   24
1.695709    14  0   5
1.242222    17  2   12
0.220234    7   1   7
0.5113825   6   0   6
0.2355718   3   0   12
0.0799512   1   1   6
1.267324    15  2   6
0.0862502   7   1   3
1.151916    33  2   6
0.06002221  9   0   17
0.2011567   11  5   17

鉴于冰雹报告的数量大于10,风力报告的数量大于20,龙卷风的报告数量,我需要确定大风爆发的可能性(等级指数大于0.25)大于5?

2 个答案:

答案 0 :(得分:1)

假设这是完整数据的部分。以下基于dplyr的解决方案基于以下条件: hail_reports> 2&wind_reports> 2&tornado_reports> 5 (否则您将获得 )。对其进行适当修改以获取完整数据。

librray(dplyr)

df %>% 
   filter (hail_reports > 2 & wind_reports > 2 & tornado_reports > 5) %>% 
mutate(major = if_else(ranking_index > 0.25, 1, 0)) %>%     # major= 1: index > 0.25
  group_by(major) %>% summarize(n = n()) %>% 
transmute(major, prob = n/sum(n))

#    major  prob
#    <dbl> <dbl>
#  1     0 0.667
#  2     1 0.333                     # major prob = 0.333

PS: 总是最好避免在列名中使用空格。例如。使用“ hail_reports”代替“ hail报告”

答案 1 :(得分:0)

我认为这是不可能发生的事件,因为在给定的数据集中,冰雹报告的数量永远不会大于10。 还是上面提供的只是一个示例,而不是完整的示例?