# Create a test dataframe
df <- data.frame(c(1:3), c(3:5), c(8:10))
colnames(df) <- c("col1","col2","col3")
#### VERSION 1 ####
# Creates a new dataframe from each column, but lose the original column names in the new dataframes
for(i in 1:ncol(df))
{assign(colnames(df)[i], data.frame(df[,i]))}
#### VERSION 2 ####
# Creates a new dataframe from each column, maintains the original column names in the new dataframes
for(i in 1:ncol(df))
{temp <- data.frame(df[,i])
colnames(temp) <- colnames(df)[i]
assign(colnames(df)[i], temp)
rm(temp)
}
代わりに、OPは '(ほとんど普遍的に推奨されて)assign'を見送るために喜んであれば、' split.default(DF、seq_along(DF)) 'や' split.defaultあります(DF、名前(df)) ' – Frank
split.defaultは間違いなく素晴らしい選択肢です。分割結果を新しいオブジェクト 'x < - split.default(df、names(df))'に代入すると、得られたデータフレームはそのオブジェクトのリストの中に保存され、そのインデックスで参照することができますつまり、データフレーム 'x [2]'のインデックス番号を使うか、データフレーム 'x [" col2 "]' –
の名前を使って実際に 'x [[" col2 "]]'でしょうか? 'x [" col2 "]'はリストのサブセットであり、その要素ではありません。 – Frank