Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R-帮助将嵌套列表(?)转换为data.frame_R_Matlab_List_Nested_Dataframe - Fatal编程技术网

R-帮助将嵌套列表(?)转换为data.frame

R-帮助将嵌套列表(?)转换为data.frame,r,matlab,list,nested,dataframe,R,Matlab,List,Nested,Dataframe,我需要将.mat(Matlab)数据文件导入R,并将其内容组织为数据帧。虽然使用R.matlab软件包导入很简单,但转换到数据帧却很困难,因为数据最初是以某种笨拙的方式组织的。看起来有两个嵌套列表。到目前为止,我还无法将其转换为数据帧 以下是我到目前为止的情况: # Download original flux file oldwd <- getwd() tmp <- tempdir() setwd(tmp) url <- 'https://dl.dropboxusercont

我需要将.mat(Matlab)数据文件导入R,并将其内容组织为数据帧。虽然使用R.matlab软件包导入很简单,但转换到数据帧却很困难,因为数据最初是以某种笨拙的方式组织的。看起来有两个嵌套列表。到目前为止,我还无法将其转换为数据帧

以下是我到目前为止的情况:

# Download original flux file
oldwd <- getwd()
tmp <- tempdir()
setwd(tmp)
url <- 'https://dl.dropboxusercontent.com/u/27700634/FLUX_DATA.mat'
f <- file.path(tmp, 'FLUX_DATA.mat')
download.file(url, f, method='curl')
setwd(oldwd)

# Read data using package R.matlab
library(R.matlab)
mlab <- readMat(f)
据我所知,到目前为止,共有15个数据变量,由第16个变量描述。我可以通过键入以下内容访问每个变量:

mlab$DATA[[1]]
mlab$DATA[[2]]
mlab$DATA[[3]]
从mlab$数据[[16]]中可以看出,“一年中的十进制日”、“净辐射”和“感热通量”的值。我需要做的是将这些变量转换为数据帧列,保留最后一个列表mlab$data[[16]]作为列的名称


有人知道如何做到这一点吗?非常感谢您的指导。

为什么不直接从列表对象中提取

dat <- as.data.frame( mlab$ DATA[1:15]) 
colnames(dat) <- unlist( mlab$ DATA[16] )
因为。。。我对列表对象不熟悉(现在仍然不熟悉)?但是你的回答做到了,非常感谢。为了使最终的结构对我来说更加方便,我使用了colnames(dat)
dat <- as.data.frame( mlab$ DATA[1:15]) 
colnames(dat) <- unlist( mlab$ DATA[16] )
round( t(dat) , 3)