एक बार आर के seq
समारोह के "चतुराई" से अधिक मुझे कोने मामले में बुरी तरह से प्रभावित किया है अधिक से अधिक है जब lower == upper - 1
कि एक खाली अनुक्रम बनाता है:अनुक्रम निर्माण करता है, तो कम से ऊपरी बाध्य
> 1:0
[1] 1 0
> seq(1, 0)
[1] 1 0
> seq(1, 0, 1)
Error in seq.default(1, 0, 1) : wrong sign in 'by' argument
मैं नहीं कर रहा हूँ इस अजीब व्यवहार के कारणों के लिए पूछना - मुझे लगता है कि अब यह सिर्फ एक विरासत है जिसके साथ हमें रहना है। इसके बजाय, मुझे पता है कि किसी भी पैकेज एक seq
ऑपरेटर कि इस मामले में एक खाली अनुक्रम रिटर्न लागू करता है, निम्नलिखित की तरह करता है, तो चाहते हैं:
safe.seq.int <- function(from, to, by=1) {
if (from > to) integer(0) else seq.int(from, to, by)
}
> safe.seq.int(1, 0)
integer(0)
बिल्कुल मुझे जो चाहिए, धन्यवाद! पहले एक कोशिश नहीं की है। बहुत खराब दस्तावेज में 'seq_len (0) 'के लिए एक उदाहरण शामिल नहीं है ... – krlmlr
कोई जांच नहीं - और मेरी पहली टिक के लिए धन्यवाद! :) –