簡體   English   中英

將列表轉換為Tibble Plus添加帶有列表名稱的列

[英]Convert List to Tibble Plus Add Column With List Names

我正在研究一個Web抓取/映射項目,在該項目中,我從一家餐館網站抓取了地址數據,並將結果存儲為一個列表-在此示例中稱為loc_list

問題是,如何最好地將這些列表項轉換為單個data.frame / tibble(當前使用bind_rows( ) ),但是在新的data.frame中,ALSO還具有一個名為metro的列,該列與每個列表項名稱相對應。 在我的示例中,輸出將具有3 alpharetta ,然后是3 atlanta ,然后是1 buford

loc_list

$alpharetta
# A tibble: 3 x 2
                  names                                                  address
                  <chr>                                                    <chr>
1 East Roswell          US 2630 Holcomb Bridge Rd Alpharetta, GA  30022
2 Old Milton US 4305 Old Milton Parkway Ste 101 Alpharetta, GA  30022
3 Windward       US 875 N Main Street Ste 306 Alpharetta, GA  30009

$atlanta
# A tibble: 3 x 2
                        names                                         address
                        <chr>                                           <chr>
1 Philips Arena        US 100 Techwood Drive Atlanta, GA  30303
2 Virginia Highlands       US 1006 N Highland Ave Atlanta, GA  30306
3 Perimeter     US 1211 Ashford Crossing Atlanta, GA  30346

$buford
# A tibble: 1 x 2
            names                                          address
            <chr>                                            <chr>
1 Woodward US 3250 Woodward Crossing Blvd Buford, GA  30519

目標輸出:

names          address       metro
East Ros...    US 2630...    alpharetta

正如alistaire指出的那樣, .id足以使bind_rows 這是示例數據:

alpharetta <- tibble(names=c("East Roswell", "Old Milton"),
                     address = c("US 2630 Holcomb Bridge Rd Alpharetta, GA  30022", "4305 Old Milton Parkway Ste 101 Alpharetta, GA  30022"))
atlanta <- tibble(names=c("Philips Arena", "Virginia Highlands"),
                  address = c("US 100 Techwood Drive Atlanta, GA  30303", "US 1006 N Highland Ave Atlanta, GA  30306"))

loc_list <- list(alpharetta = alpharetta, atlanta = atlanta)

bind_rows(loc_list, .id="metro")
# A tibble: 4 x 3
       metro              names                                               address
       <chr>              <chr>                                                 <chr>
1 alpharetta       East Roswell       US 2630 Holcomb Bridge Rd Alpharetta, GA  30022
2 alpharetta         Old Milton 4305 Old Milton Parkway Ste 101 Alpharetta, GA  30022
3    atlanta      Philips Arena              US 100 Techwood Drive Atlanta, GA  30303
4    atlanta Virginia Highlands             US 1006 N Highland Ave Atlanta, GA  30306

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM