如何将列表转换为数据框,同时在 R 中保留其 headers

How to convert a list into a data frame while keeping its headers in R

我有一个名为 mylist 的列表,其中除了 headers 之外还有 108 行。我尝试将其转换为数据框,并使用以下命令成功运行

df <- data.frame(matrix(unlist(mylist), nrow=108, byrow=F))

但是,我的列表 (mylist) 中每个矩阵的 headers 尚未在我的新数据框 df 中定义。

names(df)

"X1" "X2" "X3" "X4" "X5" "X6" "X7" "X8" "X9" "X10" "X11" "X12" "X13" "X14" "X15" "X16" "X17" "X18" "X19" "X20" "X21" "X22" "X23" "X24" "X25" "X26" "X27" "X28" "X29" "X30" "X31" "X32" "X33" "X34" "X35" "X36"

mylist 看起来像这样

head(mylist[[1]])

      RAmi         MDaf
1   11.806405   -3.588567
2   7.711101    -9.721415
3   2.315104    11.217575
4   20.372999   -2.267938
5   22.279704   -1.668082
6   13.57909    20.67355



head(mylist[[2]])

          Tomi         Rahaf
    1     325          -3
    2      71          -9
    3      2           11
    4     20.999      -22
    5      22         -16
    6     139         2065

这仅适用于 head(mylist[[i]])i=1 但 i=1,2,3, ... , 18

也存在类似的情况

我想要的是将它们全部相邻地放在一个数据框中。它运行良好,但我的标题有问题

我希望有人能帮助我理解如何这样做。 谢谢

似乎在将一列数据帧转换为一个数据帧时出现问题。因此,最好从一开始就使用一个数据框。

例如,在我的例子中,我导入了原始数据

#data1=read.csv(file.choose(), header=F)
data1=read.csv

然后我开始分析我的数据。然后我写了一个代码来生成一个数据框,如

# Here we are extracting the data which we wish to have
#iterations=nrow(data1) #Check the number of rows

listOfDataFrames <- vector(mode = "list", length = 18)   # define a dataframe with length
#mylist <- list() #create an empty list
for (k in 0:17)
{
    j=18 # from 14 i.e. switzerland this is not true anymore 
    if ((k>=14) && (k<16))
    {
        f=7+j*k
        s=3+j*k

    }  else if (k<14)
    {
        s=7+j*k-4
        f=7+j*k
    } else if (k==16)
    {
        f=j*k+5
        s=f+4
    } else if (k==17)
    {
        f=304
        s=301
    }
    b= data1[,c(f,s)] 
    #mylist[[k+1]] <- b
    listOfDataFrames[[k+1]]=b
}
#df <- data.frame(matrix(unlist(mylist), nrow=108, byrow=F))

这让我可以将所有数据与 headers

一起放入一个数据框中
df=do.call("cbind", listOfDataFrames)
head(df)