2017-11-21 75 views
-1

私は同じ列を持ち、各データフレームの行数が異なるデータフレームのリストを持っています。すべての行を1つのデータフレームに連結するにはどうすればよいですか?長さの異なるデータフレームのリストを連結するにはどうすればよいですか?

require('jsonlite') 

# Get the list of repos for each of these GitHub user 
users <- c('hadley', 'schmidt4brains', 'fred') 
urls <- lapply(users, function(user) paste0("https://api.github.com/users/", user, "/repos")) 

# Fetch all the repos from all users. 
# Now we have a list of 3 data frames: same columns, but different row counts 
repo_list <- lapply(urls, fromJSON) 

すべてのデータフレームのすべての行を1つのデータフレームに結合するにはどうすればよいですか?

sapply(repo_list, identity)はすべての行を結合しますが、結果はデー​​タフレームではなく、すべての列名が失われています。

+1

あなたは 'rbind()'やsuccintly 'do.call(rbind、repo_list)'を望みます。 – Jthorpe

答えて

2

repos <- rbind_pages(repo_list)トリックを行います。

もちろん、何時間もStackOverflowを検索した後、20種類の失敗したアプローチを試してみて、問題を示す質問をフォーマットするために神経を起こすと、投稿後15分で私自身の答えが見つかります!

+0

ニース。あなたの 'repo_list'の特徴の1つは、' dataframe'リスト要素に別のネストされた 'dataframe'が含まれていることです。 –

+0

うん、@MauritsEvers、' jsonlite'パッケージの任意のJSON結果のページを扱っています。あなたが言ったように、それらの結果は、他のデータフレームの任意の入れ子を含むことができます。それは、 "just use do.call(rbind)"のすべての株式ガイダンスが転倒したことを意味しています。ああ、それは今働いているので、それを出荷! :) –

関連する問題