मैं निम्नलिखित वेक्टर में पत्र तुलना करने के लिए एक for loop
लिखने में सफल:(परहेज छोरों) एक ही वेक्टर के आसन्न तत्वों की तुलना
bases <- c("G","C","A","T")
test <- sample(bases, replace=T, 20)
test
[1] "T" "G" "T" "G" "C" "A" "A" "G" "A" "C" "A" "T" "T" "T" "T" "C" "A" "G" "G" "C"
वापस आ जाएगी समारोह Comp()
मैं के साथ यह जांच कर सकते हैं कि कोई पत्र अगले अक्षर
Comp <- function(data)
{
output <- vector()
for(i in 1:(length(data)-1))
{
if(data[i]==data[i+1])
{
output[i] <-1
}
else
{
output[i] <-0
}
}
return(output)
}
से मेल खाता है या नहीं
परिणामस्वरूप;
> Comp(test)
[1] 0 0 0 0 0 1 0 0 0 0 0 1 1 1 0 0 0 1 0
यह काम कर रहा है, फिर भी इसकी verry बड़ी संख्या के साथ धीमी गति से। वजह मैं sapply()
Comp <- function(x,i) if(x[i]==x[i+1]) 1 else 0
unlist(lapply(test, Comp, test))
की कोशिश की दुर्भाग्य से अपने काम नहीं कर रहा ... (Error in i + 1 : non-numeric argument to binary operator
) मैं मुसीबत पता लगाना है कि यह कैसे तुलना करने के लिए वेक्टर में पूर्ववर्ती पत्र का उपयोग करने के लिए है। इसके अलावा length(data)-1
, अंतिम अक्षर की तुलना नहीं करने के लिए एक समस्या बन सकती है।
मदद के लिए सभी को धन्यवाद!
चीयर्स लकी
मैंने समस्या को बेहतर तरीके से संदर्भित करने और संदर्भ उद्देश्यों के लिए शीर्षक को दोहराया। आपको यह भी पता होना चाहिए कि स्वाद/लापरवाही आदि * * लूप हैं, यद्यपि एक अलग रूप में। Http: // stackoverflow भी देखें।कॉम/प्रश्न/2275896/आईएस-आरएस-लागू-परिवार-से-सिंटेक्टिक-चीनी –
धन्यवाद, मैं आर और प्रोग्रामिंग के लिए नया हूं, – LuckyLion