1

私は 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 

の値ごとに 1 つの列、 の値ごとに 1 つの行をdata.frame含むテーブルにを変換し、テーブル内の値をとの組み合わせの SP として使用します。結果のテーブルは次のようになります。WLtWLt

               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

4

2 に答える 2

1

私が知っている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

次に、お気に入りのXLConnectを使用して、任意の Excel パッケージを使用できます。

> library(XLConnect)
> writeWorksheetToFile(file="out.xlsx", data=as.data.frame(padded), sheet="Output")
于 2013-03-28T12:44:17.357 に答える
1

おそらく、csv ファイルを生成するだけで十分でしょう。Excel は csv ファイルを読み取ることができます。これを参照write.csvしてください。

それ以外の場合はwrite.xls、パッケージからdataframes2xls、またはパッケージからです。write.xlsxxlsx

于 2013-03-28T11:57:32.823 に答える