将数据框中的每列转换为单独的数据框

时间:2017-05-11 06:25:55

标签: r dataframe

假设我有一个包含10列的数据框,其中10列中的每一列代表一个单独的时间序列。

我想将每个时间序列(或数据框的每一列)存储在单独的数据框中。

我尝试过使用assign(" columnname",df [,i]),其中i是从1到列数的for循环中的变量。这导致每列的字符向量,而我需要数据帧。

知道我怎么办?

1 个答案:

答案 0 :(得分:0)

# 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)
}