Конвертировать каждый столбец в фрейме данных в отдельный фрейм данных
Скажем, у меня есть датафрейм с 10 столбцами, где каждый из 10 столбцов представляет отдельный временной ряд.
Я хотел бы хранить каждый временной ряд (или каждый столбец информационного кадра) в отдельном информационном кадре.
Я попытался использовать метод assign("columnname", df[,i]), где i - это переменная в цикле for, выполняющемся от 1 до количества столбцов. Это приводит к символьным векторам каждого столбца, где вместо этого мне требуются кадры данных.
Есть идеи, как мне поступить?
1 ответ
Решение
# 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)
}