2016-04-02 109 views
-1

假設我有矩陣稱爲M,如何在初始行提取後提取一系列n行?

"Date" "X" "Y" 
1991 T 10 
1992 T 5 
1993 F 2 
1994 F 1 
1995 T 7 

其中date是一個字符值,X是布爾型,Y是數字。另外,假設行的總數是50,每個行都填有上述值。

我的第一個選擇標準是第二列爲真。因此,

initial_row<-M[M[,2]==T,] 

我正在尋找一種方法來提取10行(或任何常數)後的初始行,無論他們的值在任何列。基本上,我試圖挖掘最初提取後的所有行,然後繼續下一行,直到符合最初選擇標準的下一行。

+0

@coffieinjunky嗨,我剛剛發佈了一個新的問題。你能幫我嗎? –

+0

他不會得到那個通知,除非他最近訪問了這個帖子 –

回答

0

此代碼應提取後的初始行的行,把行分批進入名單

const <- 10 
lapply(which(M$X), function(n){ 
    indices <- n + 1:const # 0:const to include initial row 
    indices <- indices[indices <= nrow(M)] # exclude out of bounds values 
    M[indices,] 
}) 
+0

它說'錯誤在哪裏(看漲):對'哪個'的論據不合邏輯'。 –

+0

我嘗試刪除which(),現在它說n + 0中的錯誤:const:非二進制運算符的非數字參數。 –

+0

編輯答案 –