R で大きなデータフレームを作成する
この記事では、R で大きなデータフレームを作成するいくつかの方法について説明します。
R でベクトルと因子を使用してデータフレームを作成する
データフレームは、R 言語の最も強力な組み込みデータ構造であり、各列の長さが同じで名前が必要な表形式の行列に似ています。ただし、その下には、データフレームの各列がリスト
データ構造の要素であるかのように扱われるため、より多くのリスト
のような機能があります。プラス面として、次のコードスニペットに示すように、ベクトルと因子の組み合わせを使用してデータフレームを構築できます。data.frame
関数を使用して、ベクトルと因子からデータフレームオブジェクトを構築します。
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
v3 <- c(1, 2, 3, 1, 2, 3)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri"))
df2 <- data.frame(v1, v2, v3, wday)
出力:
v1 v2 v3 wday
1 1.1 11 1 Wed
2 1.2 12 2 Thu
3 1.3 13 3 Mon
4 2.1 21 1 Wed
5 2.2 22 2 Thu
6 2.3 23 3 Fri
R でリストを使用してデータフレームを作成する
または、リストオブジェクトを使用してデータフレームオブジェクトを作成することもできます。ただし、このメソッドには、単一のリストオブジェクトをデータフレームに変換する as.data.frame
と呼ばれる別の関数が必要です。次の例では、list
関数を使用してリストオブジェクトを作成し、as.data.frame
の引数として呼び出すチェーンを作成していることに注意してください。データフレームには列ラベルが必要なため、ユーザーが指定しない場合、通常は自動的に選択されます。変換中に不要な名前が選択された場合は、いつでも colnames
関数を呼び出して、列名のベクトルを割り当てることができます。
v1 <- c(1.1, 1.2, 1.3, 2.1, 2.2, 2.3)
v2 <- c(11, 12, 13, 21, 22, 23)
v3 <- c(1, 2, 3, 1, 2, 3)
wday <- factor(c("Wed", "Thu", "Mon", "Wed", "Thu", "Fri"))
df1 <- as.data.frame(list(v1, v2, v3, wday))
colnames(df1) <- c("v1", "v2", "v3", "wday")
df1
出力:
v1 v2 v3 wday
1 1.1 11 1 Wed
2 1.2 12 2 Thu
3 1.3 13 3 Mon
4 2.1 21 1 Wed
5 2.2 22 2 Thu
6 2.3 23 3 Fri
R でマトリックスを使用してデータフレームを作成する
場合によっては、ベクトルまたはリストで初期化するのが実用的でない巨大なデータフレーム割り当てが必要になります。幸い、matrix
関数は、行/列番号を指定することにより、大きなデータフレームを構築するための簡単で高速な方法を提供します。オプションで、最初の引数として渡されたベクトルを使用して、データフレームの値を初期化できます。それ以外の場合、要素は NA
値になります。
m1 <- matrix(1:1000, ncol = 10, nrow = 100)
df1 <- as.data.frame(m1)
df1
出力:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
1 1 101 201 301 401 501 601 701 801 901
2 2 102 202 302 402 502 602 702 802 902
....