R 如何从单个数据帧的列中自动创建多个数据帧?

R 如何从单个数据帧的列中自动创建多个数据帧?,r,dataframe,R,Dataframe,我的数据帧“测试”如下所示: Date 1 2 3 01.01.1985 NA NA NA 09.01.1985 NA NA NA 17.01.1985 0.05173014 0.04578678 0.04326039 25.01.1985 NA NA NA 02.02.1985

我的数据帧“测试”如下所示:

Date                1          2          3
01.01.1985         NA         NA         NA
09.01.1985         NA         NA         NA
17.01.1985 0.05173014 0.04578678 0.04326039
25.01.1985         NA         NA         NA
02.02.1985         NA         NA         NA
10.02.1985 0.05835957 0.05499137 0.05497832
对于从1到n的每一列(日期列除外),我希望创建1到n(在本例中为3)个数据帧,每个数据帧包含日期列和从1到n的另一列。例如:

        Date          3
1 01.01.1985         NA
2 09.01.1985         NA
3 17.01.1985 0.04326039
4 25.01.1985         NA
5 02.02.1985         NA
6 10.02.1985 0.05497832
理想情况下,每个新数据帧都将以其编号“n”或类似“new_frame_n”的名称命名。 由于我的整个数据框包含一千多行(日期)和大约50列(以1到n命名),我想找出一种自动完成的方法。 我已经尝试了很多种方法,这就是我目前所做的:

i <- 2 #start at second column
m <- ncol(test) # assign this to length of loop
m

for (i in 2:m) {
    new_frame_[[i-1]] <-  subset(test, select = c(Date, i))
    i <- i+1
}
i试试这个:

df <- read.table(textConnection("
Date                1          2          3
01.01.1985         NA         NA         NA
09.01.1985         NA         NA         NA
17.01.1985 0.05173014 0.04578678 0.04326039
25.01.1985         NA         NA         NA
02.02.1985         NA         NA         NA
10.02.1985 0.05835957 0.05499137 0.05497832" ) ,header=TRUE)

for ( i in 1:ncol(df[-1])) {
 assign(paste0("new_frame", i), cbind(df[1], df[-1][i])) 
 }

df谢谢,这正是我想要的。我建议使用列表
l谢谢你的建议。在寻找解决方案的过程中,我遇到了很多类似的问题,基本上回答问题的人总是建议使用列表。所以我也会试试。