簡體   English   中英

R中的data.frame

[英]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每個值一行,表中的值作為WLt組合的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.xlsdataframes2xls包,或write.xlsxxlsx包。

據我所知,沒有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM