2015-08-26 44 views
0

我有一個字符列表,並且在一些代碼行後,我的列表中有一個包含零個字符的元素。我如何提取具有零字符的元素的索引? 原始列表R找到列表的索引

blocks <- list(
        c("A", "B"), 
        c("C","D", "E", "R", "T"), 
        c("X"), 
        c("N") 
    ) 

轉化列表

blocks <- list(
        character(0), 
        c("C","D", "E", "R", "T"), 
        c("X"), 
        c("N") 
    ) 
+1

不知道你想要什麼。 'blocks [[1]]'獲得第一個'list'元素。如果你需要一個邏輯索引'seq_along(blocks)== 1'。 如果你需要提取第一個元素'sapply(blocks,'[',1)' – akrun

+2

你能顯示你的預期輸出嗎?第一個元素的索引是1(在R ....中)。 – Heroka

+0

每個列表元素的第一個元素? lapply(blocks,「[[」,1) –

回答

0

不知道你想要什麼,但我想grep可以做的伎倆:如果你想知道

  • ,其中所述元件的名單是一個字母,使用grep('A', block)

  • 如果你想知道一個字母在整個列表中的位置,你可以試試grep('A', unlist(blocks))

  • 如果你還想別的東西,那麼試試吧!

0

如果我們想有character(0)元素的邏輯指數,我們可以在第二個「塊」

!lengths(blocks) 
#[1] TRUE FALSE FALSE FALSE 

lengths使用lengths是一個方便的包裝爲sapply(blocks, length)是快多了。

lengths(blocks) 
#[1] 0 5 1 1 

用於第一list元件返回0 length。通過否定(!),0被強制爲TRUE,其他所有其他爲FALSE