2

オブジェクトを MS Excel に取り込む簡単な方法を探しています。(例として、プリインストールされた「ピューロマイシン」データセットを使用しています)

これらのオブジェクトの内容を単一の Excel ファイルに配置したいと思います。

Puromycin
summary(Puromycin$rate)
summary(Purymycin$conc)
table(Puromycin$state)
lm( conc ~  rate , data=Puromycin)

「コンテンツ」とは、Enter キーを押したときにコンソールに表示される内容を意味します。何と呼べばいいのかわからない。

私はこれをやろうとしました:

sink("datafilewhichexcelhopefullyunderstands.csv")
Puromycin
summary(Puromycin$rate)
summary(Purymycin$conc)
table(Puromycin$state)
lm( conc ~  rate , data=Puromycin)
sink()

これにより、拡張子が CSV のファイルが作成されますが、メモ帳でファイルを開くと、コンマ区切りがあります。つまり、Excelで正しく開くことができません。適切とは、各数値が独自のセルにあることを意味します。

他の人は、同様の問題に対してこれを提案してい ます https://stackoverflow.com/a/13007555/1831980

しかし、初心者として、私は解決策が複雑すぎると感じており、より簡単な方法を望んでいます.

私が今していることはこれです:

write.table(Puromycin, file="clipboard" , sep=";" , row.names=FALSE ) 
write.table(summary(Purymycin$conc), file="clipboard" , sep=";" , row.names=FALSE )
... etc...

しかし、これには多くのコピーと貼り付けが必要であり、これを排除したいと考えています。

どんな助けでもいただければ幸いです。

4

3 に答える 3

2

write.tableおよびその仲間は、指定されたセパレーターで区切られたデータの列を書き出すことを目的としています。summary常に一意の出力を提供するものを使用しているため、クリップボードにはいくつかのデータ型が含まれています。

データ値を書き出すには、on を使用write.csvdata frameて Excel で開くことができます。たとえば、Puromycinはすでにデータ フレーム ( で確認できますstr(Puromycin)) であるため、直接書き出すことができます。

write.csv(file = "some file.csv", x = Puromycin)

これは現在の作業ディレクトリに移動します(これは で決定できますgetwd())。

回帰モデルの結果を書き出す/保存するのは、もう少し難しい作業です。間違いなく使用できsinkますが、ファイルの拡張子を指定し.txtて、テキスト エディターで開くことができるようにします。非常に優れたレポートを自動的に作成できるため、長い目で見たいと思うかもしれない、より洗練されたメソッド ( sweave、 ) があります。knitr

str(any R object)それまでの間、それがあなたの友達になるので知っておいてください. でワークスペース内のすべてのオブジェクトを表示できますls()

于 2013-01-21T18:03:44.217 に答える
1

最も簡単なオプションは、RExcelツールを使用することです。これは、R と Excel の間で情報を転送します。ただし、フリーソフトウェアではありません。

XLConnect パッケージは別のオプションで、Excel ファイルに情報を直接書き込むために使用できます。

トリッキーな部分はlm呼び出しです。 lm単純なベクトル、マトリックス、またはデータ フレーム (これらはすべて csv に変換したり、直接送信したりするのは簡単です) を返さず、リストのさまざまな部分をスプレッドシートのセルに変換する明確な方法はありません。抽出関数を使用して、lm オブジェクトの戻り値lmまたは概要から重要な部分を抽出し、他のツールを使用してそれらを Excel に送信することをお勧めします。

Excel で数値が必要な理由と、数値を使用して何をする予定かについて詳しく教えていただければ、より適切なサポートを提供できる可能性があります (Excel を完全にスキップできる場合があります)。

主な目的が出力を他のユーザーと共有することである場合は、実際に Knitr パッケージ (または他の関連パッケージ) を確認する必要があります。これは Excel ファイルを作成しませんが、R に詳しくない他のユーザーと簡単に共有できる形式でレポート ファイルを作成するために (pandoc プログラムや他のツールと共に) 使用できます。すべてを .pdf ファイルに入れるか、 .docx ファイル (後者は MS Word によって読み取られ、Word を使用して編集できる表が含まれます)。編集内容を R に戻す簡単な方法はありませんが、トラックの変更により、どのような変更が行われたかを簡単に確認し、それに応じて R スクリプト/テンプレートを手動で編集できます。

于 2013-01-21T19:23:14.020 に答える
1

これは、Excel の Data/Text to Columns 関数を使用する準備ができている場合にのみ役立ちます。

capture.output( sapply( c(Puromycin,
summary(Puromycin$rate),
summary(Puromycin$conc),
table(Puromycin$state),
lm( conc ~  rate , data=Puromycin) ), FUN=print), file="datafilewhichexcelhopefullyunderstands.csv", append=TRUE)

問題は、具体的に指示しない限り、Excelが空白をセル​​セパレータとして読み取らないことです。Text-to-Columns ダイアログ インターフェイスによって提供される固定フィールド入力機能を使用できます (私はよくそうしました)。

于 2013-01-21T19:21:20.060 に答える