相當一些谷歌的努力,我希望有人能幫助我解決這個問題,即顯得相當簡單,在我之後的所有可能組合的最好的一套,但也許是更復雜的比我想象:[R查找包括所有值
我有一個包含三列的data.frame。前兩個反映了五個變量(1-5)的所有可能組合,最後是組合的「強度」。我尋找五行,其中包括Var1和Var2的所有值(所以值爲1-5),並且在強度列中具有最高的總和。在下面的示例中,它是具有1000的強度的五行,因爲它們具有最高的總和,並且在前兩列中給出所有五個值(1-5)。
我該如何最好地解決這個問題?是否有一個包已經實現了這個任務?我現在發現了constrOptim()函數,我可以這樣做嗎?
代碼來創建一個實例數據框:
a <-cbind(expand.grid(seq(1,5,1),seq(1,5,1)),
strength = c(-11, 61, 230, 118, 156, 98, 169, 306, 6, -54,
207, -32, 27, 128, 101, 19, -18, 32, 153, 14,
63, 136, 165, 73, 35))
a <- a[order(a$strength, decreasing=T),]
開始數據集:
Var1 Var2 strength
3 2 306
3 1 230
1 3 207
2 2 169
3 5 165
5 1 156
4 4 153
2 5 136
4 3 128
4 1 118
5 3 101
1 2 98
4 5 73
1 5 63
2 1 61
5 5 35
3 4 32
3 3 27
1 4 19
5 4 14
4 2 6
1 1 -11
2 4 -18
2 3 -32
5 2 -54
不想要的結果:
Var1 Var2 strength
3 2 306
3 1 230
1 3 207
2 2 169
3 5 165
期望的結果:
Var1 Var2 strength
3 2 306
1 3 207
5 1 156
4 4 153
2 5 136
你能顯示預期的輸出嗎? – akrun
問題出在「所有變量用於第一列和第二列的地方......」。這是什麼意思? –
最終解決方案應該有五行。前兩列(v1,v2)應該都具有從1到5的所有值。這是否清楚?我可以發佈一個例子,以後我會知道解決方案。這個例子是隨機的,因此我不知道解決方案。謝謝! –