Учитывая предоставленную вами структуру данных, я бы использовал sapply
:
sapply(people, function(x) x[2])
> sapply(people, function(x) x[2])
age age age age age
"23" "35" "20" "31" "26"
Однако вы заметите, что результатом этого являются символьные данные.
> class(people[[1]])
[1] "character"
Один из подходов заключается в принуждении к as.numeric()
или as.integer()
в вызове sapply.
В качестве альтернативы - если у вас есть гибкость в том, как вы храните данные в первомместо, возможно, имеет смысл сохранить его в виде списка data.frame
s:
people = vector("list", 5)
people[[1]] = data.frame(name="Paul", age=23)
people[[2]] = data.frame(name="Peter", age=35)
...
Если вы собираетесь зайти так далеко, вы можете также рассмотреть вопрос об одном data.frame для всехваши данные:
people2 <- data.frame(name = c("Paul", "Peter", "Sam", "Lyle", "Fred")
, age = c(23,35,20,31, 26))
Может быть, есть и другая причина, почему вы не рассматривали этот подход в первый раз, хотя ...