2011-08-23 17 views
7

मेरे पास एक चर (var) है जो 10000 मान संग्रहीत करता है और पूर्णांक प्रकृति का है।मूल्य मानने की संख्या

मैं गिनना चाहता हूं, इस सूची में 1000 अंकों या 1000 से अधिक संख्यात्मक मान कितनी बार होता है।

आर में कोई भी लाइनर?

अग्रिम धन्यवाद।

+2

आपने क्या प्रयास किया? – Iterator

उत्तर

11

sum(Var >= 1000) ऐसा करेगा, जब तक Var एक वेक्टर है। यदि नहीं, तो आपको Var को किसी भी ऑब्जेक्ट के अंदर खोजने के लिए आर को बताना होगा। यहाँ एक उदाहरण है:

> set.seed(2) 
> Var <- sample(900:1100, 10) 
> Var 
[1] 937 1040 1014 933 1085 1084 925 1061 990 1005 
> Var >= 1000 
[1] FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE FALSE TRUE 
> sum(Var >= 1000) 
[1] 6 

इस तथ्य यह है कि TRUE = 1 और FALSE = 0.

+1

के लिए एक चालाक शॉर्टेंड है एक साइड नोट के रूप में, यदि आप इसे" var == 1000 "के लिए करना चाहते हैं, तो हो "==" और "all.equal" के बीच के अंतर को पढ़ने के लिए सुनिश्चित करें –

10
sum(Var>=1000) 

सुझाव है कि आप कुछ परिचय आर दस्तावेज़ों को पढ़ते हैं, इस तरह की चीज हर समय फसलों को पढ़ती है। इसके अलावा, आपके पास आशा है कि 'सूची' नहीं बल्कि एक 'वेक्टर' है। यदि यह एक 'सूची' है तो ... ummm, असूची() इसे पहले।

+0

मुझे लगता है कि आपका मतलब था '> =' न केवल '>' –

+0

क्रमबद्ध। मेरी गलती ... – Spacedman

+0

@ स्पेसमैन: सलाह के लिए धन्यवाद, मैं एमसी सिमुलेशन की अपनी स्क्रिप्ट के साथ खेल रहा हूं। मैं चाहता हूं कि आपके परिवर्तनीय सिम में देखा गया ओवरलैप कितनी बार हुआ और उसके बाद चक्रों की संख्या से विभाजित हो। इससे कुछ अंश मिलेगा जो मुझे लगता है कि एक अनुभवजन्य पी-वैल्यू के रूप में उपयोग किया जा सकता है। कोई सुझाव ????? – Angelo

4

इस प्रयास करें:

sum(r >= 1000) 

जहां r एक वेक्टर है। यह काम करता है क्योंकि जब आप एक बूलियन वेक्टर को समेटने का प्रयास करते हैं तो आर स्वचालित रूप से बूलियन TRUE/FALSE को मान 1 और 0 में परिवर्तित करता है।

3

शायद कुशल के रूप में नहीं का उपयोग करता है, लेकिन मैं

> length(which(Var>=1000)) 
0

तरह यह भी उपयोग करने के लिए संभव है:

vec <- sample(1:10, 15, replace = TRUE) 
table(vec > 2) 

या

length(vec[vec>2]) 
संबंधित मुद्दे