これはおそらく簡単な質問ですが、私のR経験のほとんどはデータフレームとdplyrです。私はリストのリストを持っています。内側のリストには、「情報」データフレームと「結果」データフレームが含まれています(下の例を参照)。R:データフレームの2Dリストを1つのデータフレームに再編成
# Sample code for my data structure
data <- list(
list(data.frame(subject = "A", year = 2016),
data.frame(results = c(1, 2, 3), time = c(4, 5, 6))
),
list(data.frame(subject = "B", year = 2017),
data.frame(results = c(7, 8, 9), time = c(10, 11, 12))
)
)
これは内側のリストのデータを分析するのには優れていますが、私は 'クロスリスト'分析を行うのに苦労しました。私がしようとしているのは、以下のように自分のデータを作り直すことです。
# Dataframes in lists in lists (current)
[[1]]
[[1]][[1]]
subject year
1 A 2016
[[1]][[2]]
results time
1 1 4
2 2 5
3 3 6
[[2]]
[[2]][[1]]
subject year
1 B 2017
[[2]][[2]]
# Single dataframe (goal)
subject year results time
1 A 2016 1 4
2 A 2016 2 5
3 A 2016 3 6
4 B 2017 7 10
5 B 2017 8 11
6 B 2017 9 12
私はすでにオンラインで検索しましたが、解決策のほとんどはデータフレームではないリストのリストの単一のリストです。
実際のデータはであり、多くの場合は(行と列の両方)が大きいので、私はこれまでのforループを使用しています(行と列の両方)。
df = data.frame()
for (i in (1:length(data))) {
df = rbind(df,
cbind(data[[i]][[1]], data[[i]][[2]]))
}
乾杯!