Конвертировать каждый столбец в фрейме данных в отдельный фрейм данных

Скажем, у меня есть датафрейм с 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)
}
Другие вопросы по тегам