【问题标题】:Extract values for a particular variable from lists of nested list and append a column of the extracted values to my original dataset从嵌套列表的列表中提取特定变量的值,并将提取值的一列附加到我的原始数据集中
【发布时间】:2020-06-27 09:58:49
【问题描述】:

我有我的原始数据集

agriculturestru~ asofdate   basefloodelevat~ basementenclosu~ reportedcity condominiumindi~ policycount countycode crsdiscount
   <chr>            <date>                <dbl>            <dbl> <chr>        <chr>                  <dbl> <chr>            <dbl>
 1 NA               2019-08-31               NA                4 WESTPORT     NA                         1 09001                0
 2 NA               2019-08-31               10                4 W HAMPTON B~ NA                         1 36103                0
 3 NA               2019-08-31               NA                3 BRONX        NA                         1 36005                0
 4 NA               2019-08-31               NA                4 MASSAPEQUA   NA                         1 36059                0
 5 NA               2019-08-31               NA                4 STATEN ISLE  NA                         1 36085                0
 6 NA               2019-08-31                7                4 GARDEN CITY  NA                         1 36059                0
 7 NA               2019-08-31                7                4 YONKERS      NA                         1 36119                0
 8 NA               2019-08-31                7                4 GARDEN CITY  NA                         1 36059                0
 9 NA               2019-08-31               NA                4 LOGAN        NA                         1 54045                0
10 NA               2019-08-31               NA                4 HARAHAN      NA                         1 22051                0
# ... with 918,923 more rows, and 34 more variables: dateofloss <date>, elevatedbuildingindicator <chr>,
#   elevationcertificateindicator <dbl>, elevationdifference <dbl>, censustract <chr>, floodzone <chr>, houseworship <chr>,
#   latitude <dbl>, locationofcontents <chr>, longitude <dbl>, lowestadjacentgrade <dbl>, lowestfloorelevation <dbl>,
#   numberoffloorsintheinsuredbuilding <dbl>, nonprofitindicator <chr>, obstructiontype <dbl>, occupancytype <dbl>,
#   originalconstructiondate <date>, originalnbdate <date>, amountpaidonbuildingclaim <dbl>, amountpaidoncontentsclaim <dbl>,
#   amountpaidonincreasedcostofcomplianceclaim <dbl>, postfirmconstructionindicator <chr>, ratemethod <chr>,
#   smallbusinessindicatorbuilding <chr>, state <chr>, totalbuildinginsurancecoverage <dbl>,
#   totalcontentsinsurancecoverage <dbl>, yearofloss <dbl>, reportedzipcode <chr>, primaryresidence <chr>, totalpaid <dbl>,
#   totalcoverage <dbl>, station_id <chr>, station_name <chr>'''

我有来自函数的 40 个元素的 10 个输出列表

> List of 40
 $ US1CTFR0035:List of 1
  ..$ prcp:Classes ‘tbl_df’, ‘tbl’ and 'data.frame':    1006 obs. of  6 variables:
  .. ..$ id   : chr [1:1006] "US1CTFR0035" "US1CTFR0035" "US1CTFR0035" "US1CTFR0035" ...
  .. ..$ prcp : int [1:1006] NA NA 140 0 137 0 0 28 0 8 ...
  .. ..$ date : Date[1:1006], format: "2016-04-01" "2016-04-02" "2016-04-03" "2016-04-04" ...
  .. ..$ mflag: chr [1:1006] " " " " " " "T" ...
  .. ..$ qflag: chr [1:1006] " " " " " " " " ...
  .. ..$ sflag: chr [1:1006] " " " " "N" "N" ...
  .. ..- attr(*, ".internal.selfref")=<externalptr> 
 $ US1NYSF0080:List of 1
  ..$ prcp:Classes ‘tbl_df’, ‘tbl’ and 'data.frame':    853 obs. of  6 variables:
  .. ..$ id   : chr [1:853] "US1NYSF0080" "US1NYSF0080" "US1NYSF0080" "US1NYSF0080" ...
  .. ..$ prcp : int [1:853] NA 33 0 0 0 0 28 5 0 18 ...
  .. ..$ date : Date[1:853], format: "2016-09-01" "2016-09-02" "2016-09-03" "2016-09-04" ...
  .. ..$ mflag: chr [1:853] " " " " " " " " ...
  .. ..$ qflag: chr [1:853] " " " " " " " " ...
  .. ..$ sflag: chr [1:853] " " "N" "N" "N" ...
  .. ..- attr(*, ".internal.selfref")=<externalptr> 

我想提取并合并所有 10 个输出数据,并根据以下条件将一列附加到我的原始数据集中:data$station_id == alloutput$id & data$dateofloss == alloutput$date

数据$prcp

我希望这足够清楚以获得一些帮助。 谢谢

【问题讨论】:

  • 这两个都是lists
  • 我的数据集是一个数据框,我有 40 个嵌套列表的 10 个列表。我试过 list2 = out1[[1]] lapply(2:length(out1), function(i) {list2 = rbind(list2, as.data.frame(out1[[i]]))}) 但 R 只返回第一个嵌套列表。

标签: r


【解决方案1】:

也许,我们需要加入数据集

library(dplyr)
library(purrr)
lst2 <-  map(lst1, ~ .x %>% 
            left_join(data, by = c("id" = "station_id",  "date" = "dateofloss")))

【讨论】:

    猜你喜欢
    • 2021-10-15
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    • 1970-01-01
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2021-08-26
    相关资源
    最近更新 更多