假设我有一个包含10列的数据框,其中10列中的每一列代表一个单独的时间序列。
我想将每个时间序列(或数据框的每一列)存储在单独的数据框中。
我尝试过使用assign(" columnname",df [,i]),其中i是从1到列数的for循环中的变量。这导致每列的字符向量,而我需要数据帧。
知道我怎么办?
答案 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)
}