[英]data.frame in R
我是R的初学者,我想从R创建一个xlsx文件。我的数据框定义为:
SP : List of 8
$ WL : num [1:1201] 200 200 201 202 202 ...
$ t : num [1:872, 1] 0.499 0.999 1.499 1.999 2.499 ...
$ SP : int [1:872, 1:1201, 1] 380 405 447 431 419 436 439 434 422 447 ...
$ TF : int [1:872, 1] 0 1 2 3 4 5 6 7 8 9 ...
$ SpectraCount: num 872
$ TStamp : chr "12/01/2011 03:09:32PM"
$ IT : int 100
$ SourceCount : num 1
我想将data.frame
转换成一个表,其中WL
每个值一列, t
每个值一行,表中的值作为WL
和t
组合的SP。 结果表如下所示:
WL 1,.......... 1201
t
1 (SP values)
.
827
如果我放
write.csv(SP1, file="SP1.csv", row.names = FALSE)
然后我在data.frame中出错(WL = c(200,200.5,201,201.5,202,202.5,203,203.5,:参数暗示不同的行数:1201,872,1
也许生成一个csv文件就足够了。 Excel可以读取csv文件。 参见write.csv
。
否则,有write.xls
从dataframes2xls
包,或write.xlsx
从xlsx
包。
据我所知,没有Excel界面可以处理参差不齐的列表-您需要将其转换为矩形数据结构。
您当然可以循环使用列表的列并编写它们,但是我认为最好将列表填充到data.frame中:
> l <- list(a="foo", b=c(1,2,3), d=(1.0,2.0,3.0,4.0))
> rows <- max(unlist(lapply(l, length)))
> padded <- lapply(l, function(col) c(col, rep(NA, rows-length(col))))
> as.data.frame(padded)
a b d
1 foo 1 1
2 <NA> 2 2
3 <NA> 3 3
4 <NA> NA 4
然后,您可以将任何Excel软件包与我最喜欢的XLConnect一起使用 :
> library(XLConnect)
> writeWorksheetToFile(file="out.xlsx", data=as.data.frame(padded), sheet="Output")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.