【问题标题】:How to subselect rows in a list in R?如何在R中的列表中选择行?
【发布时间】:2021-05-20 10:15:45
【问题描述】:

我有一个类似下面的列表:

list = list(list(structure(c(-0.400607209057279, 0.0242846054534983, 
1.07183260806661, 0.210375926994793, -0.598110614279325, 0.328756100004543, 
0.041451934117632, -0.153582305157426, 0.0675921111165776, 0.0496673228210189, 
0.140204384947362, 0.225542031454836, 0.266354713967405, 0.209984407397341, 
0.253766426749399, 0.175707241053856, -5.92683380411573, 0.488945328118657, 
7.64478663394886, 0.932757081408659, -2.24554168901445, 1.56562148627759, 
0.16334680142132, -0.874080682368419, 2.20747340407002e-08, 0.625629466517291, 
2.78532752417959e-12, 0.352517622977477, 0.0262671996969948, 
0.119647524621447, 0.870476011567877, 0.383539884308263), .Dim = c(8L, 
4L), .Dimnames = list(c("(Intercept)", "EuroAreaFinancialConditionsIndexTighter", 
"lag(y_head)", "lag(y_head, 2)", "lag(y_head, 3)", "lag(y_head, 4)", 
"lag(y_head, 5)", "lag(y_head, 6)"), c("Value", "Std. Error", 
"t value", "Pr(>|t|)")))), list(structure(c(-0.289128498791063, 
-0.0448747139563502, 1.15203580702985, 0.159702183409595, -0.439892662346207, 
0.306618245294801, -0.156691849747325, -0.0202812296427224, 0.0386279817940242, 
0.0369327996773584, 0.0978521577034518, 0.162116638488562, 0.204733803242113, 
0.195461510504343, 0.19526485078366, 0.138183741645396, -7.48494964952562, 
-1.21503688722143, 11.7732284506304, 0.985106679354587, -2.14860787705879, 
1.56868861037472, -0.802458041570054, -0.146770013615406, 1.791899961745e-12, 
0.22567850856334, 0, 0.325673836659913, 0.0327781177272715, 0.118184267645313, 
0.423170072886826, 0.883450448286412), .Dim = c(8L, 4L), .Dimnames = list(
    c("(Intercept)", "EA1119MoneySupplyM3AnnualGrowthSWDA", "lag(y_head)", 
    "lag(y_head, 2)", "lag(y_head, 3)", "lag(y_head, 4)", "lag(y_head, 5)", 
    "lag(y_head, 6)"), c("Value", "Std. Error", "t value", "Pr(>|t|)"
    )))), list(structure(c(-0.281655386514107, 0.0310188197488235, 
1.1113027194266, 0.229949513436667, -0.547562074020019, 0.280262695331719, 
-0.130182672640871, 0.0208894864351691, 0.0382328804703427, 0.0312467553173357, 
0.0722986869273771, 0.100805869599974, 0.131080856866478, 0.0708067223836297, 
0.112715550686891, 0.0907252704964236, -7.36683668740543, 0.992705304400494, 
15.3709945042693, 2.28111234344955, -4.17728482334974, 3.95813682510624, 
-1.15496638970875, 0.230249921778878, 3.64774876970841e-12, 0.321964340972845, 
0, 0.023516795858753, 4.28197858433066e-05, 0.000102506467352548, 
0.249380289955491, 0.818115485997225), .Dim = c(8L, 4L), .Dimnames = list(
    c("(Intercept)", "EuroAreaMonetaryConditionsIndexNChg", "lag(y_head)", 
    "lag(y_head, 2)", "lag(y_head, 3)", "lag(y_head, 4)", "lag(y_head, 5)", 
    "lag(y_head, 6)"), c("Value", "Std. Error", "t value", "Pr(>|t|)"
    )))), list(structure(c(-0.308406712353652, 0.0721192692057188, 
1.06041759377939, 0.267930859007064, -0.473092654570593, 0.236186013917166, 
-0.183926657576742, 0.0321820170485134, 0.0357462432692773, 0.0362928332243416, 
0.118543518934851, 0.160113739690506, 0.161719513582802, 0.149892287754766, 
0.166860115357931, 0.117574149532283, -8.62766780918536, 1.98714905391702, 
8.94538649862563, 1.67337830922546, -2.92539004161896, 1.57570491087295, 
-1.10228053709661, 0.273716775129018, 1.55431223447522e-15, 0.0482055357233087, 
2.22044604925031e-16, 0.095741743486222, 0.00381833761269723, 
0.116599083151332, 0.271601398547106, 0.784571311517507), .Dim = c(8L, 
4L), .Dimnames = list(c("(Intercept)", "EuroArea1119HouseholdsCostofBorrowingforHousePurchase", 
"lag(y_head)", "lag(y_head, 2)", "lag(y_head, 3)", "lag(y_head, 4)", 
"lag(y_head, 5)", "lag(y_head, 6)"), c("Value", "Std. Error", 
"t value", "Pr(>|t|)")))), list(structure(c(-0.307967612224745, 
0.0831854408614686, 1.02585851947084, 0.292395261491216, -0.494508006811693, 
0.237150677864955, -0.112142809187923, -0.0338118036041564, 0.0395276245876505, 
0.0386455759390375, 0.141709958915371, 0.194235990305735, 0.16940638379618, 
0.156488573409092, 0.181274151897494, 0.127448323303881, -7.79119958351766, 
2.15252170113059, 7.23914202870867, 1.50536088101373, -2.9190635897562, 
1.51545044279365, -0.618636512784992, -0.265298143809528, 3.01536573488193e-13, 
0.0324967782913945, 8.37863112224113e-12, 0.133733926774535, 
0.00389355768051614, 0.131162113500165, 0.536826286048908, 0.791040035878413
), .Dim = c(8L, 4L), .Dimnames = list(c("(Intercept)", "EuroArea1119NonfinancialCorporationsCostofBorrowing", 
"lag(y_head)", "lag(y_head, 2)", "lag(y_head, 3)", "lag(y_head, 4)", 
"lag(y_head, 5)", "lag(y_head, 6)"), c("Value", "Std. Error", 
"t value", "Pr(>|t|)")))))

[[1]]
[[1]][[1]]
                                              Value Std. Error    t value     Pr(>|t|)
(Intercept)                             -0.40060721 0.06759211 -5.9268338 2.207473e-08
EuroAreaFinancialConditionsIndexTighter  0.02428461 0.04966732  0.4889453 6.256295e-01
lag(y_head)                              1.07183261 0.14020438  7.6447866 2.785328e-12
lag(y_head, 2)                           0.21037593 0.22554203  0.9327571 3.525176e-01
lag(y_head, 3)                          -0.59811061 0.26635471 -2.2455417 2.626720e-02
lag(y_head, 4)                           0.32875610 0.20998441  1.5656215 1.196475e-01
lag(y_head, 5)                           0.04145193 0.25376643  0.1633468 8.704760e-01
lag(y_head, 6)                          -0.15358231 0.17570724 -0.8740807 3.835399e-01


[[2]]
[[2]][[1]]
                                          Value Std. Error    t value     Pr(>|t|)
(Intercept)                         -0.28912850 0.03862798 -7.4849496 1.791900e-12
EA1119MoneySupplyM3AnnualGrowthSWDA -0.04487471 0.03693280 -1.2150369 2.256785e-01
lag(y_head)                          1.15203581 0.09785216 11.7732285 0.000000e+00
lag(y_head, 2)                       0.15970218 0.16211664  0.9851067 3.256738e-01
lag(y_head, 3)                      -0.43989266 0.20473380 -2.1486079 3.277812e-02
lag(y_head, 4)                       0.30661825 0.19546151  1.5686886 1.181843e-01
lag(y_head, 5)                      -0.15669185 0.19526485 -0.8024580 4.231701e-01
lag(y_head, 6)                      -0.02028123 0.13818374 -0.1467700 8.834504e-01

我想做的是只保留每个列表的第二行。

谁能帮帮我?

谢谢!

【问题讨论】:

    标签: r list dataframe


    【解决方案1】:

    您可以使用lapply[ 选择第二行:

    lapply(list, function(x) x[[1]][2,])
    [[1]]
         Value Std. Error    t value   Pr(>|t|) 
    0.02428461 0.04966732 0.48894533 0.62562947 
    
    [[2]]
          Value  Std. Error     t value    Pr(>|t|) 
    -0.04487471  0.03693280 -1.21503689  0.22567851 
    
    [[3]]
         Value Std. Error    t value   Pr(>|t|) 
    0.03101882 0.03124676 0.99270530 0.32196434 
    
    [[4]]
         Value Std. Error    t value   Pr(>|t|) 
    0.07211927 0.03629283 1.98714905 0.04820554 
    
    [[5]]
         Value Std. Error    t value   Pr(>|t|) 
    0.08318544 0.03864558 2.15252170 0.03249678 
    

    或者保持结构,以防有多个子列表。

    lapply(list, function(x) lapply(x, function(y) y[2,]))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 1970-01-01
      • 2019-12-22
      • 2020-01-25
      相关资源
      最近更新 更多