R言語データ取得操作

記事とコードは [Github ウェアハウス: https://github.com/timerring/dive-into-AI ]にアーカイブされています。または、公開アカウント [AIShareLab] はR 言語に返信することで取得することもできます。

実際、R には分析や実践に使用できる組み込みデータ セットが多数あり、特定の分布をシミュレートするデータを R で作成することもできます。実際の業務では、データ アナリストはさまざまなデータ ソースからの外部データ、つまり .txt、.csv、.xlsx、.xls などのさまざまな拡張子を持つデータ ファイルに直面することがよくあります。異なる拡張子のファイルは異なるファイル形式を表すため、アナリストが混乱することがよくあります。

R は、幅広いデータ インポート ツールを提供します。

1. 組み込みデータセットを取得する

R の組み込みデータセットは各パッケージに存在し、基本パッケージにはdatasets関数のないデータセットのみが含まれています。このパッケージは、医学、自然、社会学などのさまざまな分野をカバーする約 100 のデータセットを提供します。

次のコマンドで確認できます。

data(package = "datasets")

データセットを呼び出したい場合は、data( )関数を使用できます。次のコマンドを実行すると、R はデータセット iris をワークスペースに読み込みます。

data(iris)

データセット パッケージの他に、R の他の多くのパッケージにもデータセットが付属しています。R の実行後に自動的にロードされる基本パッケージではない場合は、パッケージ内のデータを使用する前に、これらのパッケージをインストールしてロードする必要があります。以下では、MASS パッケージ内のデータ セット バクテリアを例として、データ呼び出しプロセスを説明します。

library(MASS)
data(bacteria)

2. 特定の分布でデータをシミュレートする

R は、数値シミュレーションに使用できる一連の関数を提供します。これらの関数はrで始まり、一般的に使用される関数は、rnorm( )、runif( )、rbinom( )、rpois( ) などです。例えば:

# 后续可视化部分会详细介绍直方图
r1 <- rnorm(n = 100, mean = 0, sd = 1)
# head(r1) # 取前 5 个值看看
hist(r1)

r2 <- runif(n = 10000, min = 0, max = 100)
hist(r2)

r3 <- rbinom(n = 80, size = 100, prob = 0.1)
hist(r3)

r4 <- rpois(n = 50, lambda = 1)
hist(r4)

3. 他の形式でデータを取得する

3.1 txt および csv 形式

データ ソースが Windows のメモ帳またはその他のプレーン テキスト エディターで作成された ASCII 形式のファイルである場合、関数を使用してread.table( )データを読み取り、データ フレームを返すことができます。

たとえば、作成されたデータ フレーム患者のデータ ファイルがpatients.txt現在の作業ディレクトリに保存されていると仮定すると、次のコマンドを使用してデータを読み取ることができます。

# getwd() # 获取当前工作目录
# 临时创建下 patients.txt 数据文件
ID <- 1:5
sex <- c("male", "female", "male", "female", "male")
age <- c(25, 34, 38, 28, 52)
pain <- c(1, 3, 2, 2, 3)      
pain.f <- factor(pain, levels = 1:3, labels = c("mild", "medium", "severe"))   
patients <- data.frame(ID, sex, age, pain.f)
write.table(patients, "patients.txt", row.names = FALSE)

patients.data <- read.table("patients.txt", header = TRUE)
patients.data

区切りテキスト ファイルはスプレッドシートやデータベース アプリケーションで生成されることが多く.csv ファイルはカンマ区切り値(カンマ区切り値) です。この関数は、read.csv( ).csv ファイルを読み取るために設計された関数 read.table( ) の変形です。

read.table ( )read.csv ( )2 つの関数のパラメータのデフォルト値は異なります。
関数 ではread.table ( )、パラメーター ヘッダーのデフォルト値は FALSE です。つまり、ファイルの最初の行は変数名ではなくデータとみなされます。
関数ではread.csv ( )、パラメーター ヘッダーのデフォルト値は TRUE です。したがって、データを読み込む前に、元のファイルを開いて表示し、データを正しく読み込むために適切なパラメータを設定することをお勧めします。

write.csv(patients, "patients.csv", row.names=FALSE)
patients.data <- read.csv("patients.csv")
patients.data

3.2 xls または xlsx 形式

スプレッドシート データを読み取る方法は多数ありますが、最も簡単な方法は、データ ファイルを Excel でカンマ区切り (.csv) ファイルとして保存し、.csv ファイルを読み取るために上記で説明した方法を使用して R に読み取ることです。xlsx または xls 形式のデータ ファイルは、 openxlsx パッケージ、readxl パッケージ、gdata パッケージなどのサードパーティ パッケージを使用して直接読み取ることもできます

openxlsx パッケージを例として取り上げます。

library(openxlsx)
write.xlsx(patients, "patients.xlsx")
patients.data <- read.xlsx("patients.xlsx", sheet = 1)
patients.data

3.3 他の統計ソフトウェアからデータをインポートする

場合によっては、SPSS、SAS、Stata、Minitab などの他の統計ソフトウェアによって生成されたデータを読み取る必要があります。1 つの方法は、他の統計ソフトウェアからデータをテキスト ファイルとして出力し、関数 read.table( ) または read.csv( ) を使用してデータを R に読み込むことです。もう 1 つの方法は、外部パッケージなどの拡張パッケージを使用することです。この拡張パッケージの主な機能は、他の統計ソフトウェアからのデータの読み取りおよび書き込みです。

以下は、SPSS データ ファイルをインポートする例です。

データ ファイルがpatients.sav現在の作業ディレクトリに保存されていると仮定すると、次のコマンドを使用してデータ セットを R に読み取ることができます。

# 为了节约附件数量,让我们直接从下载到工作区
URL <- "http://download.kesci.com/qlhatmok4/patients.sav"
download.file(URL, destfile = "./patients.sav", method="curl")

library(foreign)
# 函数 `read.spss( )` 中的参数 `to.data.frame` 默认为 FALSE,如果不设置为 TRUE,返回的将是一个列表形式数据。
patients.data <- read.spss("patients.sav" , to.data.frame = TRUE)
patients.data

外部パッケージを使用して SAS や Stata などのソフトウェアのデータ ファイルをインポートするプロセスは上記と同様です。詳細についてはドキュメントを参照してください。

4. データ入力

R にデータを直接入力することもできますが、データ量が大きい場合 (10 列以上または 30 行以上)、R にデータを入力することは最良の選択ではありません。Excel などの小規模なデータを入力する表計算ソフトウェアを選択できます。

しかし、データ量が多い場合、表計算ソフトを使って手入力するとミスが発生する可能性も高くなります。現時点では、フリー ソフトウェア EpiData など、データ入力専用に設計されたプログラム ソフトウェアの方が適しています。このソフトウェアは、範囲チェックやワードラップなどのデータ入力の制約を便利に設定できるだけでなく、各変数や変数値にラベルを追加することもできます。

外部パッケージ内の関数は、read.epiinfo( )EpiData によって生成された .rec ファイルを直接読み取ることができますが、まず入力されたデータを EpiData 内の Stata データ ファイルとしてエクスポートし、次に関数 read.dta() を使用して R 内のデータを読み取ることをお勧めします。この利点は、変数ラベルや説明など、EpiData に事前設定された変数の属性を保存できることです。

おすすめ

転載: blog.csdn.net/m0_52316372/article/details/132439380