2011-08-05 52 views
1

您好請查找下面提到的代碼。我想要的是在我想要進行的某些條件檢查的基礎上爲我的數組添加值。如果這些值符合條件,那麼它們應該添加到數組中,否則它們應該被丟棄。但是,我無法獲得所需的數組。在這方面的任何幫助將會很有幫助。輸入數組中的R

>NODE_1 
[1]GTTGGCCGAGCCCCAGGACGCGTGGTTGTTGAACCAGATCAGGTCCGGGCTCCACTGCACGTAGTCCTCTTCCCAATTTCCCTTAA 

>NODE_2 
[1] CCTCCGGCGGCACCACGGTCGGCGAGGCCCTCAACATCCTG GAGCGCACCGACCTGTCCACCGCGGACAAGGCCGGTTACCT 
GCACCGCTACATCGAGGCCAGCCGCATCGCGTTCGCGGACC 

>NODE_3 
[1]GCCCGGCGCCTGGCCGCGGGCGAGTGGGTCGTGGACCTGCGCTCCCGGGTGGCCTTCGCCGCCGGTCACGTCGCCGGG 
    TCGCTCAACTTCGAGGCCGACGGACAGCT 

我的代碼是:

Length <- function(a) 
{ 
    b<-list() 
    for (i in 1: length(a)) 
    { 
    b[i]<-which(length(a[i])<30, arr.ind = FALSE, useNames = TRUE) 
    m<- array(b[i]) 
    } 
} 
k<- Length(Y) 

所以我想要做的僅僅是對那些數據從Y,其長度小於30

+0

您需要重新格式化此問題:其中一個「>」符號導致數據以錯誤形式顯示爲blockquote。 – neilfws

+1

@Ankur:你至少要問四個或更多關於類似數據的問題。在任何時候你都不能有效地澄清它的結構。你沒有注意到一個人關閉的信息,因爲這個問題太模糊不清,無法回答。你需要使用dput()函數發佈你的數據。鍵入「> NODE_1使我們認爲有單個對象命名爲NODE_1,NODE_2,NODE_3。循環方法需要使用get()來處理這種無效的數據排列。 –

+0

問題是我不能使用Bioconductor,必須在基本的R做。但我非常感謝你們所有人。@Ankur – sagar

回答

1

你應該使用nchar(),而不是添加到陣列blength()獲得字符數。

而要做到這將R的方式,你可以使用布爾指數:k <- a[nchar(a)<30]

希望幫助!