2017-10-04 48 views
1

是否有任何方法或函數只保留向量包含向量列表中的兩個元素。R:如何在列表中保留具有特定數量元素的矢量?

l<- list(c(24,56) , c(23,5,16), c(2,5),c(10,14,13,25), 
      c(12,33) ,c(1,2),c(3,5,6),c(10,14)) 

結果將是:

> l 
    [[1]] 
    [1] 24 56 

    [[2]] 
    [1] 2 5 

    [[3]] 
    [1] 12 33 

    [[4]] 
    [1] 1 2 
+5

'l < - l [length(l)== 2]'? –

+3

或'過濾器'。 '過濾器(函數(x)長度(x)== 2,l)' –

+0

謝謝docendo discimus和Mike H – Noor

回答

1

對於未來的讀者,並考慮這個問題 「回答」,兩個解決辦法是:

  1. Filter(function(x) length(x)==2, l)
  2. l <- l[lengths(l) == 2]

這兩者返回:

#[[1]] 
#[1] 24 56 
# 
#[[2]] 
#[1] 2 5 
# 
#[[3]] 
#[1] 12 33 
# 
#[[4]] 
#[1] 1 2 
# 
#[[5]] 
#[1] 10 14 

信用到@docendodiscimus用於第二溶液。