我有一个名为mylist
的列表,其中除了标题之外还有108行。我尝试将其转换为数据帧,并使用以下命令成功运行
df <- data.frame(matrix(unlist(mylist), nrow=108, byrow=F))
但是,我的列表(mylist)中每个矩阵的标题尚未在我的新数据帧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
我想要的是将它们全部放在一个数据帧中。它工作正常,但我的标题有问题
我希望有人可以帮助我理解如何这样做。 谢谢
答案 0 :(得分:0)
将数据帧列表转换为一个数据帧似乎存在问题。因此,最好从一开始就使用一个数据帧。
例如,在我的情况下,我导入了原始数据
#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))
这允许我将所有数据与标题
一起放入一个数据框中df=do.call("cbind", listOfDataFrames)
head(df)