我仍然在努力應對不同的應用功能,以及它們如何取代一個for-next-loop。我想要做的是按照排序的值順序排序帶有字符串(值標籤)的矢量,在我的情況下比值比。如何使用apply函數和apply-family的函數?
我有「oo」對象的優勢比(無序)和so對象中的排序/排序賠率值。此外,我有相同的順序進行排序爲「OO」值標籤,現在應重新orderd於「因此」對象中的值匹配:
# sort labels descending in order of
# odds ratio values
oo <- exp(coef(x))[-1]
so <- sort(exp(coef(x))[-1])
nlab <- NULL
for (k in 1:length(categoryLabels)) {
nlab <- c(nlab, categoryLabels[which(so[k]==oo)])
}
categoryLabels <- nlab
例如
- 「OO」 是(0.3,0.7,0.5)
- 「所以」 是(0.3,0.5,0.7)
- categoryLabels(的OO)是( 「A」, 「B」,「 (「A」,「C」,「B」)重新排序
我想知道的是,如果可以替換for-next通過應用功能進行循環,如果是這樣,怎麼辦?
由於提前, 丹尼爾
'categoryLabels'元素與'oo'元素的起始順序是否相同?如果是這樣,'ord < - order(00)'後跟'so < - oo [ord]'和'categoryLabels < - categoryLabels [ord]'應該這樣做。更好的辦法是將'oo'變成一個名爲* vector的矢量,並將'names'屬性設置爲'categoryLabels',然後對'oo'進行排序。當然,這就是我在這個評論的第一句話中詢問的假設。 「 – 2013-02-27 15:30:56
」categoryLabels元素與oo元素的起始順序相同嗎?「 - 是的,「oo」是包含OR值的「原始賠率」,並且分類標籤與這些OR相關(即相同的「無序」訂單)。 「所以」應該是「排序的賠率」。訂單功能工作正常,我使用了David提出的實現。 – Daniel 2013-02-28 08:51:33