Change value in one row after comparison with the next row in R -


मेरे पास डेटाफ्रेम है जैसा

  स्थिति क्रो स्कोर 10101 chr1 0 450 9 chr1 3.58051 10745 Chr1 0 2344 chr1 0 7165 chr1 -2.59335 6752 chr1 -2.655688 7441 chr1 0 7588 chr1 -4.022041 10671 chr1 0 यदि z स्कोर का एक शून्य शून्य मान है मैं इसे परिवर्तित करना चाहूंगा शून्य के लिए केवल अगर पिछला मूल्य शून्य या गैर-शून्य से भिन्न दिशा में (यानी सकारात्मक या नकारात्मक)।  

ऊपर के लिए मैं डेटासेट को निम्नानुसार दिखना चाहूंगा:

  स्थिति Chr स्कोर 10101 chr1 0 450 9 chr1 0 10745 chr1 0 2344 chr1 0 7165 chr1 -2.59335 6752 chr1 -2.655688 7441 chr1 0 7588 chr1 0 10671 chr1 0   

मुझे लगता है कि मुझे फ़ंक्शन लागू करने की आवश्यकता है, लेकिन मैं इसका उपयोग कैसे करना नहीं जानता। कोई भी मदद कर सकता है?

इसलिए मुझे पता है कि यह थोड़ा चपटा दिख रहा है, लेकिन यह एक सदिश है (प्रकार की) समाधान तो ऐसा है आप तकनीकी रूप से यह एक पंक्ति में भी कर सकते हैं, लेकिन यह एक पंक्ति के एक छल्ले होगा!

पहले आप तुलना करेंगे विभिन्न वैक्टर सेट करेंगे, "परीक्षण" मेरे स्कोर कॉलम की प्रतिकृति होगी

  परीक्षण & lt; -c (0,3,0,0, -2, -2,0, -4,0) # तत्व तत्व से अधिक है, जहां मैं 2 और लंबाई के बीच है (परीक्षा) -1 उच्चतर & lt; -test [3: लंबाई (परीक्षण)] # तत्वों से कम तत्व मैं, निचले स्तर से ऊपर के रूप में एक ही परिभाषा; -test [1: (लंबाई (परीक्षण) -2)] # अपने ith तत्वों के मध्य और lt; -test [2: (लंबाई (टेस्ट) -1)]   

तो हम एक बार फिर से इफेस के जरिए रीसेट कर सकते हैं

  #if i-1 ! = 0 और i-1 के पास एक ही चिह्न है I, हम i, अन्य 0 न्यूज़कोर & lt; -इफ़एलएस ((कम! = 0) और (साइन (लोअर) == साइन (मध्य)), मध्य, 0 रखें # [1] 0 0 -2 -2 0 0   

फिर आप टिप्पणियों में डालते समय समापन बिंदु सेट करते हैं, और रीसेट स्कोर

  न्यूज़कोर & lt; -c (0, न्यूज़कोर, 0) # [1] 0 0 0 0 -2 -2 0 0 0 df $ स्कोर & lt; -newscore   

यहां आईईएलएस का एक विकल्प है ऊपर दिए गए, जो सभी विपक्ष रखता है एक ही संकेत के अनुक्रमांक

  न्यूज़कोर & lt; -ifels ((कम! = 0), ifelse (((संकेत) == संकेत (मध्य))), मध्य, 0), Ifelse (उच्चतम चिह्न) == संकेत (मध्य), मध्य, 0))   

और जब निम्नलिखित पिछले सदिश वेक्टर

  परीक्षण एवं एलटी; -सी (0,3,4,5,0,2,2,2,0)   

और वैकल्पिक ifelse परिणाम है

  # [1] 0 3 4 5 0 2 2 2 0    

Comments

Popular posts from this blog

php - PDO bindParam() fatal error -

logging - How can I log both the Request.InputStream and Response.OutputStream traffic in my ASP.NET MVC3 Application for specific Actions? -

java - Why my included JSP file won't get processed correctly? -