2017-11-21 12 views
0

私はレストランのウェブサイトから住所データを掻き集めてリストとして結果を保存しているウェブスクレイピング/マッピングプロジェクトに取り組んでいます。 loc_listと呼ばれます。リストをTibble Plusに変換するリスト名で列を追加する

質問:これらのリスト項目を単一のdata.frame/tibble(現在はを使用)に変換するにはどうすればよいですか?ただし、新しいdata.frameでは、各リスト項目名に対応する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 
+3

'bind_rows(loc_list、.ID = "地下鉄")あなたが関数を適用している場合、'あなたはまた、 '.id'パラメータと' purrr :: map_df'を使用することができますこの状態になる。 – alistaire

+0

FWIWあなたは本当に 'dput()'を使って質問のデータを実際のRタグのトップテキスト内で共有すると言っています。 #冗談抜き – hrbrmstr

答えて

0

alistaireはbind_rows.idで十分です指摘したように。ここでは例のデータは次のとおりです。

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 
関連する問題