2013-10-01 54 views
2

想象以下數據:常數子集[[X]]中的R

listA 
[[1]] 
[1] 1 2 3 4 5 6 7 
[[2]] 
[1] 1 2 3 4 5 6 
[[3]] 
[1] 1 2 3 4 5 

如何選擇:

listA[[1:2]][1:4] 

使用1:2那裏是不允許的,那麼在知道這個選擇存在時(1:21:4零件),有什麼方法可以選擇這些嗎?

我想返回:

listA 
[[1]] 
[1] 1 2 3 4 
[[2]] 
[1] 1 2 3 4 
+0

相關的,你想通了什麼:'listA的< - 列表(1:7,1:5,1:6 ); lapply(listA [1:2],'[',1:4]'。 – A5C1D2H2I1M1N2O1R2T1

+0

'''[''是一個非常有趣的捷徑。 – PascalVKooten

+0

@AnandaMahto不知道接受哪個答案,一個使用問題的符號,另一個使用一個不錯的快捷方式'「[」'?你會怎麼做? – PascalVKooten

回答

1

你可能不得不使用lapply

lapply(listA, function(x) x[1:4]) 

如果你的實際列表較長,您可以通過訪問listA[1:2]的listA的前兩個元素。所以這應該工作:

大約只用 lapply
lapply(listA[1:2], function(x) x[1:4]) 
3

什麼,

R> l = list(A = 1:6, B=1:4, C = 1:5) 
R> lapply(l[1:2], "[", 1:4) 
$A 
[1] 1 2 3 4 

$B 
[1] 1 2 3 4 
+0

+1幾乎與我完全一樣的地方:) – A5C1D2H2I1M1N2O1R2T1