我仍然在努力应对不同的应用功能,以及它们如何取代一个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