我有一个由不同长度的不同数字向量组成的列表,我想知道您是否有关于如何使用相同索引(例如,每个元素的第三个对象)提取对象的任何建议
想象一下我有这样的事情:
States<-list(Italy=rbinom(5,4,0.5),Spain=rnorm(12,6,1),Greece=sample(1:14, 6))
> States
$Italy
[1] 2 2 1 4 2
$Spain
[1] 5.403135 5.616146 7.224063 5.602878 6.738619 6.732706 7.636093 5.917246 5.901094
[10] 5.818594 7.420575 5.545782
$Greece
[1] 8 9 3 11 4 14
如何获得一个数字向量,其中每个元素的第一个对象将是一个矢量,如:
[1] 2 5.403135 8
谢谢!
答案 0 :(得分:1)
考虑使用lapply
或sapply
,这最终会让您获得相同的结果:
lapply
:
> lapply(States,function(x)x[1])
$Italy
[1] 2
$Spain
[1] 6.694136
$Greece
[1] 10
> unlist(lapply(States,function(x)x[1]), use.names=FALSE)
[1] 2.000000 6.694136 10.000000
sapply
:
> sapply(States,function(x)x[1])
Italy Spain Greece
2.000000 6.694136 10.000000
> as.vector(sapply(States,function(x)x[1]))
[1] 2.000000 6.694136 10.000000