अगर मैं एक वेक्टरगणना लगातार संख्या
"a": 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0
की तरह मुझे पता है कि कितने 1
इस मामले में a
में एक साथ हैं, चाहते हैं जवाब 3 होगा और 2.
है क्या कोई स्क्रिप्ट ऐसा कर सकती है?
अगर मैं एक वेक्टरगणना लगातार संख्या
"a": 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0
की तरह मुझे पता है कि कितने 1
इस मामले में a
में एक साथ हैं, चाहते हैं जवाब 3 होगा और 2.
है क्या कोई स्क्रिप्ट ऐसा कर सकती है?
?rle
देखें।
## create example vector
a <- c(rep(0, 3), rep(1, 3), rep(0, 4), rep(1, 2), rep(0, 3))
## count continuous values
r <- rle(a)
## fetch continuous length for value 1
r$lengths[r$values == 1]
# [1] 3 2
क्या यह 'मान' नहीं है और' मान' नहीं है? '$' के साथ आंशिक मिलान सही जानकारी पाता है, लेकिन इसलिए इसे चरम पर ले जाने के लिए 'ए ($) $ v' होगा। – thelatemail
इस बारे में कैसे?
test <- c(0,0,0,1,1,1,0,0,0,0,1,1,0,0,0)
rle(test)$lengths[rle(test)$values==1]
#[1] 3 2
बड़े पैमाने पर डेटा के लिए, आप इसे एक सा कुछ जटिल चयन का उपयोग कर गति कर सकते हैं:
diff(unique(cumsum(test == 1)[test != 1]))
#[1] 3 2
दूसरों सवाल का जवाब दे दिया है। मैं सिर्फ दो अवलोकन जोड़ना चाहूंगा:
डेटा एंट्री चाल: स्कैन का उपयोग करें (कक्षा "अंकीय", रेप या कॉमा की कोई ज़रूरत नहीं है) और यह व्हाट्स स्पेस द्वारा अलग वर्णों के लिए भी काम करता है यदि आप "चरित्र" जोड़ते हैं एक विवाद।
a <- scan()
1: 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0
16:
Read 15 items
rle
वास्तव में के लिए rep
arle <- rle(a)
rep(arle$values, arle$lengths)
[1] 0 0 0 1 1 1 0 0 0 0 1 1 0 0 0
मैंने सोचा था कि rle inverse.rle के लिए व्यस्त कार्य था;) – Dason
अच्छा, मुझे लगता है, लेकिन क्या आपने इसका कोड देखा है? –
उलटा समारोह मैं 'के लिए खोज रहे लोगों के 2 दिन में कम से कम 3 सवाल देखा है rle' यह एक अस्पष्ट समारोह लेकिन बहुत आसान है। –