split
はあなたの望むものとまったく同じだと思います。
str
で見られるように、Xは、データフレームのリストであることに注意してください:
X <- split(df, df$g)
str(X)
あなたはグループgの名を持つ個々のオブジェクトをしたい場合は、split
からそれらの名前のオブジェクトにXの要素を割り当てることができますこれは、リストからデータフレームをインデックス化するだけで、split
が作成できるときには余分な作業のようです。
#I used lapply just to drop the third column g which is no longer needed.
Y <- lapply(seq_along(X), function(x) as.data.frame(X[[x]])[, 1:2])
#Assign the dataframes in the list Y to individual objects
A <- Y[[1]]
B <- Y[[2]]
C <- Y[[3]]
D <- Y[[4]]
E <- Y[[5]]
#Or use lapply with assign to assign each piece to an object all at once
lapply(seq_along(Y), function(x) {
assign(c("A", "B", "C", "D", "E")[x], Y[[x]], envir=.GlobalEnv)
}
)
編集またはグローバル環境での使用list2env
に割り当てるlapply
を使用するよりも優れ:
names(Y) <- c("A", "B", "C", "D", "E")
list2env(Y, envir = .GlobalEnv)
A
あなたは 'スプリット(DF、DFの$ gを)'と間違っているかを説明することはできますか?これは、 'g 'の値ごとに1つずつ、' data.frame'のリストを返します。 –