web-dev-qa-db-ja.com

R data.frameをExcelスプレッドシートにコピーする

これとまったく同じ質問があります question

作業の一環として、Excelグラフを作成するために、R StudioコンソールからExcelワークシートに出力をコピーする必要があります。ただし、R Studio Consoleは書式設定されたテキストを使用しますが、Excelではあまり読みません。これを補うために、私は常にR Studioコンソールからコピーし、メモ帳に貼り付けてから、Excelにコピーしています。そうすれば、テーブルを貼り付けるときに、テキストの塊ではなく、実際には固定幅で区切られたデータであることをExcelに伝えることができます。

R Studioコンソールから出力をコピーして、書式なしテキストとしてクリップボードに入れ、Excelに直接貼り付けて、数字を別のセルに整理できるようにするにはどうすればよいですか?これは、グラフを作成するためにテーブルをメモ帳にコピー/貼り付けしてからExcelに貼り付ける必要がないため、非常に役立ちます。

21
user2543622

簡単なトリックで動作します。

最初に、RstudioのViewerペインでデータを視覚化する必要があります(関数View()を使用できます)。最後の値から最初の選択を開始する必要があります。画像)。最初のセルを完全に選択する必要があることに注意してください。最後に、選択範囲を右クリックしてコピーし、必要に応じて書式設定の有無にかかわらずExcelに貼り付けます。

enter image description here

がんばろう!

更新:

これに基づいて Post 、他の代替手段はdata.frameclipboardを介してExcelに:

write.Excel <- function(x,row.names=FALSE,col.names=TRUE,...) {
  write.table(x,"clipboard",sep="\t",row.names=row.names,col.names=col.names,...)
}

write.Excel(my.df)

そして最後にExcelのCtr + V :)

34
Darwin PC

私は通常、次の関数をソースします。

cb <- function(df, sep="\t", dec=",", max.size=(200*1000)){
    # Copy a data.frame to clipboard
    write.table(df, paste0("clipboard-", formatC(max.size, format="f", digits=0)), sep=sep, row.names=FALSE, dec=dec)
  }

いくつかのメモ:

  • Max.sizeを使用すると、キャンセルする前にクリップボードがどれだけ大きくなるか(キロバイト単位)を指定できます。現在は200MBに設定されています。
  • RスタジオフレームからExcelにRデータフレームをコピーするのに完璧に機能します(EUロケールを使用)。 USバージョンで動作するように、区切り記号/小数点記号を調整する必要がある場合があります。

使い方:

df <- mtcars
cb(df)
# Paste in Excel as 'values'
9
MattV

私の経験から、便利な方法はありません。2つの方法を使用します。

小さなデータフレームの場合、RStudioのView(data.frame)関数を使用します。ヘッダーなしでデータのみをコピーする場合は正常に機能しますが、ヘッダー付きでコピーする場合は、まずメモ帳に貼り付けて少なくとも1文字を追加する必要があります左上の空のセルに。

大きなデータフレームの場合は、write.csvまたはwrite.xls(パッケージから WriteXLS

8
Morad