如何访问列表中的特定元素?

时间:2014-09-08 20:23:03

标签: r list elements

我有一个包含180个元素的大型列表。例如,我可以使用以下调用访问列表中的第115个元素:

> mylist[115]

[[115]]
     OBJECTID CELL_ID              QUADNAME STATE_CODE MRC_CODE     QUADID N_LATITUDE
1994     1995  309458 Bucklin Reservoirs SW         WY 42107-D4 4210737_sw    42.4375
     S_LATITUDE E_LONGITUD W_LONGITUD EXTENT_TYP BOTTOM    TOP_  LEFT_    RIGHT_
1994     42.375       -107       -108          S 42.375 42.4375 -107.5 -107.4375
          FIPS_C Shape_Leng Shape_Area utm_zone
1994 56007 56025   24162.04   35680939       13

如何创建包含所有" QUADID"的数据框?列表中所有元素的属性(例如4210737_sw)?

2 个答案:

答案 0 :(得分:1)

如果您只想要QUADID的每个元素的mylist值,您可以尝试:

    sapply(mylist,function(x) x$QUADID)

这假设您列表中的每个元素都与您在OP中为第115个元素显示的结构具有相同的结构。如果不是这种情况,您应该提供有关mylist的更多详细信息,并更准确地了解您所需的输出。

答案 1 :(得分:0)

这个怎么样?

require(data.table)
a <- data.frame(OJECTID = 1995, QUADID = "4210737_sw")
b <- data.frame(OJECTID = 1995, QUADID = "5145228_sw")
c <- data.frame(OJECTID = 1995, QUADID = "4210737_sw")
l <- list(a, b, c)

rbindlist(lapply(l, FUN = function(x) if(x$QUADID == "4210737_sw"){x}))