【发布时间】:2018-10-05 12:46:26
【问题描述】:
我一直在努力解决这个问题,但未能解决。我知道答案可能很简单,但我无法解决它,也无法从其他类似问题中找到如何解决它。
我有以下data.frame:
region group probs1 probs2 probs3 probs4 weights
1 2 0.2 0.3 0.4 0.1 NA
2 4 0.3 0.4 0.15 0.15 NA
3 3 0.4 0.1 0.3 0.2 NA
4 1 0.7 0.1 0.1 0.1 NA
5 1 0.2 0.3 0.4 0.1 NA
6 2 0.6 0.1 0.1 0.2 NA
7 3 0.7 0.1 0.1 0.1 NA
8 4 0.3 0.2 0.1 0.4 NA
9 3 0.2 0.1 0.1 0.6 NA
10 1 0.1 0.2 0.1 0.6 NA
我要做的是在 data.frame 中创建一个名为“weights”的新列,其计算方式为 group==1,然后 weights=probs1/probs1。如果组==2,那么权重=probs1/probs2。如果组==3,那么权重=probs1/probs3。如果 group==4,那么 weights=probs1/probs4。
我使用了不同类型的代码,例如ifelse、if....else、dplyr,但我失败了。事实上,可能代码只为 weights=probs1/probs1 创建权重并将其应用于所有区域,而不管组。
有人可以帮我解决吗? 谢谢
【问题讨论】:
标签: r for-loop if-statement