2012-11-03 71 views
0

有誰知道一個簡單而有效的方法來找出在一個未排序的向量中有多少個值大於一個變量?一個變量在一個向量中的位置

我的向量是1,000,000個數值,我有大約400個這樣的比較,使用不同的向量和變量。任何省時的功能,將不勝感激...

+0

如果您必須一次執行所有400個比較,則可以生成直方圖。否則,seancarmody的答案只適用於返回值。 –

回答

7

如果你只是想知道有多少滿足,而不是哪一個滿足條件的情況下,試試這個:

vector<-c(1,2,3,4,5) 
sum(vector>1) 
+0

這正是我需要的!非常感謝。 – Florent

+1

@Florent,如果這是「正是你所需要的」,那麼你必須接受它作爲正確的答案,通過登錄綠色的標記:D –

2

只需使用哪個功能。所以,如果我有載體,

vector<-c(1,2,3,4,5) 
which(vector>1) 

輸出2,3,4,5

+0

Stray)在第二行的末尾。 – seancarmody

+0

這不回答「多少」這個問題。你可以將輸出傳遞給'length',但是整個事情比直接使用'sum'更慢,更不優雅。 – flodel

-4

如果我明白你想要什麼。 你可能會重新排列你的向量(快速排序),並且你可能會搜索(二進制搜索)。所有的元素,在>>然後你變量的第一個元素之後,將會是>。與<相反。

+0

你有任何代碼來說明這種方法嗎? – seancarmody

+0

排序對於這項任務來說有點貴,不是嗎? – flodel

+0

特別是當有問題的數據非常大時! – seancarmody

相關問題