RからCSVとExcelにデータをエクスポートする方法

⚡ スマートサマリー

R からのデータエクスポートでは、データフレームを CSV、Excel、SPSS、SAS、STATA、およびネイティブ R フォーマットに書き込み、同じファイルをプッシュします。 Google Drive or Dropboxすべてのエクスポートは、関数、データフレーム、および出力先パスという単一のパターンに従います。

  • 📁 目的地優先: getwd() は作業ディレクトリを報告し、完全なパスが指定されていない限り、相対ファイル名はすべてそこに書き込まれます。
  • 📄 CSVエクスポート: write.csv(df, “file.csv”) は汎用オプションで、write.csv2() はセミコロン区切り文字に切り替わります。
  • 📗 Excelエクスポート: xlsx パッケージの write.xlsx() は、動作している環境を必要とします。 Java 機械へのインストール。
  • 🔄 統計ソフトウェア: havenパッケージは、write_sav()、write_sas()、write_dta()関数を使用して、SPSS、SAS、およびSTATAファイルを作成します。
  • 💾 ネイティブ形式: saveRDS() は単一のオブジェクトを保存し、save() は複数のオブジェクトを保存します。どちらの場合も、因子レベルと属性は正確に保持されます。
  • 🇧🇷 クラウドアップロード: googledriveとrdrop2はセッションごとに一度認証を行い、その後Rから直接ファイルをアップロード、ダウンロード、削除します。

R、CSV、Excel からデータをエクスポート

R からデータをエクスポートする方法

このチュートリアルでは、R 環境からさまざまな形式にデータをエクスポートする方法を学びます。

データをハード ドライブにエクスポートするには、ファイル パスと拡張子が必要です。 まず、パスはデータが保存される場所です。 このチュートリアルでは、以下にデータを保存する方法を説明します。

  • ハードドライブ
  • Google Drive
  • Dropbox

第二に、Rはデータをさまざまな形式で出力できます。このチュートリアルでは、基本的なファイル拡張子について説明します。

  • csvファイル
  • XLSX
  • RDS
  • SAS
  • SPSS
  • スタタ

すべてのエクスポートは同じ形式に従います。つまり、1つの関数呼び出し、データフレーム、および出力先パスです。

ハードドライブにエクスポート

まず、データを作業ディレクトリに直接保存することができます。次のコードは、作業ディレクトリのパスを出力します。

directory <- getwd()
directory

出力:

## [1] "/Users/15_Export_to_do"

フルパスを指定しない限り、すべてのファイルはその作業ディレクトリに書き込まれます。デフォルトはシステムによって異なりますが、通常はユーザーのホームフォルダです。 macOS Linux と Documents フォルダ Windowsだが、getwd() は常に現在の値を返す。値を変更するには setwd() を使用するか、書き込み関数に完全なパスを渡すだけでよい。

setwd("/Users/USERNAME/Downloads")

データフレームの作成

まず、mtcarsデータセットから、ギアごとにグループ化されたmpgとdispの平均値という小さなデータフレームを作成します。

library(dplyr)
df <-mtcars %>%
    select(mpg, disp, gear) %>%
    group_by(gear) %>%
    summarize(mean_mpg = mean(mpg), mean_disp = mean(disp))
df

出力:

## # A tibble: 3 x 3
##	gear mean_mpg mean_disp
##	<dbl>	<dbl>	<dbl>
## 1	3 16.10667  326.3000
## 2 	4 24.53333  123.0167
## 3	5 21.38000  202.4800

テーブルには XNUMX つの行と XNUMX つの列が含まれています。 R の関数 write.csv を使用して CSV ファイルを作成できます。

R で DataFrame を CSV ファイルにエクスポートする方法

R で DataFrame を CSV にエクスポートするための R の write.csv の基本構文:

write.csv(df, path)
arguments
-df: Dataset to save. Need to be the same name of the data frame in the environment.
-path: A string. Set the destination path. Path + filename + extension i.e. "/Users/USERNAME/Downloads/mydata.csv" or the filename + extension if the folder is the same as the working directory

例:

write.csv(df, "table_car.csv")

Code 説明

  • write.csv(df, “table_car.csv”): ハード ドライブに CSV ファイルを作成します。
    • df: 環境内のデータ フレームの名前
    • 「table_car.csv」: ファイルに table_car という名前を付け、csv として保存します。

お願いwrite.csv2() は、フィールド区切り文字としてセミコロン、小数点としてコンマを使用して同じファイルを書き込みます。これは、ヨーロッパ大陸の多くの地域で慣例となっている方法です。

write.csv2(df, "table_car.csv")

お願い教育目的のみで、ディレクトリフォルダを開くopen_folder()という関数を作成しました。以下のコードを実行して、csvファイルがどこに保存されているかを確認してください。table_car.csvという名前のファイルが表示されるはずです。

# Run this code to create the function
open_folder <-function(dir){
	if (.Platform['OS.type'] == "windows"){
	shell.exec(dir)  
	} else {
	system(paste(Sys.getenv("R_BROWSER"), dir))
  }
}
# Call the function to open the folder
open_folder(directory)

RでデータフレームをExcelファイルにエクスポートする方法

Excelへのエクスポートは簡単です Windows そして少し難しいのは macOSどちらも xlsx ライブラリを使用しており、違いはインストール方法だけです。なぜなら、xlsx は Java. Java パッケージを読み込むには、まずマシン上にそれが存在している必要があります。

Windows users

On Windowscondaを使用してライブラリを直接インストールします。

conda install -c r r-xlsx

ライブラリがインストールされると、write.xlsx() は作業ディレクトリに新しい Excel ワークブックを作成します。

library(xlsx)
write.xlsx(df, "table_car.xlsx")

Mac OS ユーザーの場合は、次の手順に従う必要があります。

  • ステップ1: 最新バージョンをインストールする Java
  • ステップ2: ライブラリrをインストールするJava
  • ステップ 3: ライブラリ xlsx をインストールする

ステップ1) ダウンロードできます Java 公式から Oracle サイトとそれをインストールします。

Rstudioに戻って、 Java インストールされています。

system("java -version")

最近の Java リリースは正常に動作します。コマンドが何も報告しない場合、 Java インストールされていないため、xlsx パッケージの読み込みに失敗します。

ステップ2) Rにrjavaをインストールする必要があります。RとRstudioをAnacondaと一緒にインストールすることをお勧めします。Anacondaはライブラリ間の依存関係を管理します。この意味で、Anacondaはrの複雑な部分を処理します。Java インストール。

まず、conda を更新してから、 ライブラリ。 次の XNUMX 行のコードをコピーしてターミナルに貼り付けることができます。

conda update conda
conda install -c r r-rjava

次に、Rstudio で rjava を開きます

library(rJava)

ステップ3) いよいよxlsxをインストールします。 もう一度、使用できます コンダ それを行うには:

conda install -c r r-xlsx

Windowsユーザーと同様に、write.xlsx()関数を使用してデータを保存できます。

library(xlsx)

出力:

## Loading required package: xlsxjars
write.xlsx(df, "table_car.xlsx")

R から別のソフトウェアへのデータのエクスポート

データを別のソフトウェアにエクスポートするのは、インポートするのと同じくらい簡単です。ライブラリ「Haven」は、データを別のソフトウェアにエクスポートする便利な方法を提供します。

  • spss
  • SAS
  • ました

まず、ライブラリをインポートします。「haven」がない場合は、 こちら それをインストールする。

library(haven)

SPSSファイル

以下は、データを SPSS ソフトウェアにエクスポートするコードです。

write_sav(df, "table_car.sav")

SASファイル

spss と同じくらい簡単で、sas にエクスポートできます

write_sas(df, "table_car.sas7bdat")

STATAファイル

最後に、Have ライブラリを使用すると .dta ファイルの書き込みが可能になります。

write_dta(df, "table_car.dta")

データをRネイティブ形式にエクスポートする方法

オブジェクトを別のプログラムに渡すのではなく、R 内に保持したい場合は、次の 2 つのネイティブ形式のいずれかを使用します。 save() は、1 つ以上の名前付きオブジェクトを .RData ファイルに書き込みます。

save(df, file ='table_car.RData')

代替手段として saveRDS() があり、これは正確に 1 つのオブジェクトを保存し、読み込み時に読み込み側がオブジェクトの名前を選択できるようにします。

# One object, name chosen at read time
saveRDS(df, file = "table_car.rds")
my_data <- readRDS("table_car.rds")

# Several objects, original names restored
save(df, directory, file = "workspace.RData")
load("workspace.RData")
基準 saveRDS() / readRDS() save() / load()
ファイルあたりのオブジェクト数 ちょうど1つ つまたは複数の
リロード時のオブジェクト名 あなたが選ぶ 保存した状態に戻しました
環境を上書きします いいえ はい、静かに
通常の延長 .rds .RData

スクリプトでは saveRDS() 関数を使用することをお勧めします。load() 関数は、同じ名前の既存のオブジェクトを意図せず上書きしてしまう可能性があるためです。どちらの形式も、因子レベル、順序、属性をそのまま保持しますが、CSV ではそれができません。

上記で作成したファイルは現在の作業ディレクトリで確認できます。

R から STATA ファイルへのデータのエクスポート

クラウドサービスと対話する

少なくとも最後のではなく、 R には、クラウド コンピューティング サービスと対話するための素晴らしいライブラリが装備されています。 このチュートリアルの最後の部分では、次のファイルのエクスポート/インポートを扱います。

  • Google Drive
  • Dropbox

お願いこのチュートリアルのこの部分は、あなたがアカウントを持っていることを前提としています。 Google (NAIST) と Dropbox。 そうでない場合は、すぐに作成できます。 Google Drive: https://accounts.google.com/SignUp?hl=en – Dropbox: https://www.dropbox.com/h

Google Drive

対話機能にアクセスするには、ライブラリgoogledriveをインストールする必要があります。 Google Drive.

このライブラリは Anaconda ではまだ利用できません。 コンソールで以下のコードを使用してインストールできます。

install.packages("googledrive")

そして図書館を開きます。

library(googledrive)

condaユーザー以外の場合、ライブラリのインストールは簡単です。install.packages('NAME OF PACKAGE') を使用し、括弧内にパッケージ名を引用符で囲んで指定します。Rは、.libPaths() が返す最初の場所にインストールします。

にアップロード Google Drive

ファイルをアップロードするには Google ドライブを使用するには、drive_upload() 関数を使用する必要があります。

Rstudio を再起動するたびに、tidyverse へのアクセスを許可するように求められます。 Google Drive.

drive_upload() の基本構文は次のとおりです。

drive_upload(file, path = NULL, name = NULL)
arguments:
- file: Full name of the file to upload (i.e., including the extension)
- path: Location of the file- name: You can rename it as you wish. By default, it is the local name.

コードを起動したら、いくつかの質問を確認する必要があります

drive_upload("table_car.csv", name = "table_car")

出力:

## Local file: 
## * table_car.csv 
## uploaded into Drive file: 
## * table_car: 1hwb57eT-9qSgDHt9CrVt5Ht7RHogQaMk 
## with MIME type: 
## * text/csv

コンソールに「1」と入力してアクセスを確認します。

Google Drive

すると、次の場所にリダイレクトされます。 Google アクセスを許可するには、API をクリックしてください。「許可」をクリックしてください。

Google Drive

認証が完了したら、ブラウザを終了できます。

Google Drive

RStudioのコンソールでは、実行された手順の概要を確認できます。 Google ドライブ上のローカルに保存されているファイルのアップロードに成功しました。 Google ドライブ内の各ファイルにIDを割り当てた。

Google Drive

このファイルは次の場所で見ることができます Google Spreadsheet.

drive_browse("table_car")

出力:

にリダイレクトされます Google Spreadsheet

Google Drive

Import from Google Drive

ファイルIDによるダウンロードが確実な方法です。ファイル名がわかっている場合は、まずそのIDを取得してください。

お願い: インターネット接続とドライブのサイズによっては、時間がかかります。

x <-drive_get("table_car")
as_id(x)

Google Drive

ID を変数 x に保存しました。 関数 drive_download() を使用すると、ファイルをダウンロードできます。 Google Drive.

基本的な構文は次のとおりです。

drive_download(file, path = NULL, overwrite = FALSE)
arguments:
- file:  Name or id of the file to download
-path: Location to download the file. By default, it is downloaded to the working directory and the name as in Google Drive
-overwrite = FALSE: If the file already exists, don't overwrite it. If set to TRUE, the old file is erased and replaced by the new one.

最後にファイルをダウンロードできます。

download_google <- drive_download(as_id(x), overwrite = TRUE)

Code 説明

  • drive_download(): ファイルをダウンロードする関数 Google Drive
  • as_id(x): ID を使用してファイルを参照します。 Google Drive
  • overwrite = TRUE: ファイルが存在する場合は上書きし、存在しない場合は実行を停止します ファイルの名前をローカルで確認するには、次のコマンドを使用できます。

出力:

Google Drive

ファイルは作業ディレクトリに保存されます。Rで開く前に、ファイル拡張子を追加することを忘れないでください。paste()関数を使用すると、完全なファイル名を作成できます(例:table_car.csv)。

google_file <-download_google$local_path
google_file
path <-paste(google_file, ".csv", sep = "")
google_table_car <-read.csv(path)
google_table_car

出力:

##   X gear mean_mpg mean_disp
## 1 1    3 16.10667  326.3000
## 2 2    4 24.53333  123.0167
## 3 3    5 21.38000  202.4800

最後に、ファイルを削除できます Google ドライブ。

## remove file
drive_find("table_car") %>%drive_rm()

出力:

Google Drive

削除は非同期的に処理されます Googleそのため、ファイルが消えるまで少し時間がかかる場合があります。

輸出 Dropbox

R はと対話します Dropbox rdrop2 ライブラリ経由。 Anaconda でもライブラリは利用できません。 コンソールからインストールできます

install.packages('rdrop2')
library(rdrop2)

一時的なアクセスを許可します Dropbox 認証情報を使用して。認証されると、R は、 Dropbox.

まず最初に、アカウントへのアクセスを許可する必要があります。 資格情報はすべてのセッション中にキャッシュされます。

drop_auth()

にリダイレクトされます Dropbox 認証を確認します。

輸出 Dropbox

確認ページが表示されます。 閉じてRに戻ることができます

輸出 Dropbox

関数drop_create()を使用してフォルダーを作成できます。

  • drop_create('my_first_drop'): の最初のブランチにフォルダーを作成します。 Dropbox
  • drop_create('First_branch/my_first_drop'): 既存の First_branch フォルダー内にフォルダーを作成します。
drop_create('my_first_drop')

出力:

輸出 Dropbox

ドロップ中Box

輸出 Dropbox

.csv ファイルを Dropbox、関数drop_upload()を使用します。

基本的な構文:

drop_upload(file, path = NULL, mode = "overwrite")
arguments:
- file: local path
- path: Path on Dropbox 
- mode = "overwrite":  By default, overwrite an existing file. If set to `add`, the upload is not completed.
drop_upload('table_car.csv', path = "my_first_drop")

出力:

輸出 Dropbox

ドロップ時Box

輸出 Dropbox

csvファイルは以下から読み取ることができます Dropbox 関数drop_read_csv()を使用

dropbox_table_car <-drop_read_csv("my_first_drop/table_car.csv")
dropbox_table_car

出力:

##   X gear mean_mpg mean_disp
## 1 1    3 16.10667  326.3000
## 2 2    4 24.53333  123.0167
## 3 3    5 21.38000  202.4800

ファイルの使用が完了し、削除したい場合。 ファイルのパスを関数drop_delete()に記述する必要があります。

drop_delete('my_first_drop/table_car.csv')

出力:

輸出 Dropbox

フォルダの削除も可能

drop_delete('my_first_drop')

出力:

輸出 Dropbox

Rからのデータエクスポート:関数リファレンス

このチュートリアルで使用されているすべてのエクスポート関数は以下のとおりです。

図書館 DevOps Tools Engineer試験のObjective 演算
ベース csvをエクスポート write.csv()
XLSX Excelのエクスポート write.xlsx()
避難所 spssのエクスポート write_sav()
避難所 saのエクスポート write_sas()
避難所 エクスポートステータス write_dta()
ベース Rオブジェクトをエクスポートする save() / saveRDS()
グーグルドライブ アップロード Google Drive ドライブ_アップロード()
グーグルドライブ で開きます。 Google Drive drive_browse()
グーグルドライブ ファイルIDの取得 drive_get(as_id())
グーグルドライブ からダウンロード Google Drive drive_download()
グーグルドライブ ファイルを削除します Google Drive ドライブ_rm()
rdrop2 認証 ドロップ認証()
rdrop2 フォルダを作成する ドロップ_作成()
rdrop2 にアップロード Dropbox ドロップ_アップロード()
rdrop2 CSVを読み取る Dropbox drop_read_csv()
rdrop2 ファイルを削除 Dropbox ドロップ_削除()

よくあるご質問

saveRDS() は単一のオブジェクトを保存し、readRDS() を使用すると任意の名前を割り当てることができます。save() は複数のオブジェクトを保存し、load() は元の名前を復元しますが、これにより既に環境に存在する変数が暗黙のうちに上書きされる可能性があります。

デフォルトでは、write.csv() は行名を名前のない最初の列として書き込みます。これを抑制するには、row.names = FALSE を渡します。そうしないと、ファイルを再インポートしたときに不要な X 列が生成されます。

writexl::write_xlsx() または openxlsx::write.xlsx() を使用してください。どちらも、.xlsx ファイルを純粋な R で書き込みます。 Java 依存関係を回避するJava xlsxパッケージに必要な設定。

CSVではなく、RDSまたはParquetを使用してください。どちらも列の型と因子レベルを保持するため、トレーニングデータセットは毎回同じように再読み込みされます。CSVは型を自動的に変換するため、モデルの結果が再現しない原因となることがよくあります。

はい。AIアシスタントは、権限エラー、間違った作業ディレクトリ、および不足しているファイルを診断できます。 Java xlsx パッケージの場合。提案されたパスを信頼する前に、必ず getwd() 関数を使用して保存先を確認してください。