R データ フレーム: 作成、追加、選択、サブセット化する方法
データフレームとは何ですか?
A データフレーム は、同じ長さのベクトルのリストです。 行列には XNUMX 種類のデータのみが含まれますが、データ フレームにはさまざまなデータ タイプ (数値、文字、因子など) が受け入れられます。
データフレームの作成方法
データフレームを作成できるのは、 R 変数 a、b、c、d を data.frame() 関数に渡すことによって。 R でデータフレームを作成し、name() で列に名前を付け、変数の名前を指定するだけです。
data.frame(df, stringsAsFactors = TRUE)
Arguments:
- df: データ フレームとして変換する行列、または結合する変数のコレクションにすることができます。
- 文字列AsFactors: デフォルトで文字列を因子に変換します
同じ長さの XNUMX つの変数を組み合わせることで、最初のデータセットのデータフレームを R で作成できます。
# Create a, b, c, d variables a <- c(10,20,30,40) b <- c('book', 'pen', 'textbook', 'pencil_case') c <- c(TRUE,FALSE,TRUE,FALSE) d <- c(2.5, 8, 10, 7) # Join the variables to create a data frame df <- data.frame(a,b,c,d) df
出力:
## a b c d ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0 ## 3 30 textbook TRUE 10.0 ## 4 40 pencil_case FALSE 7.0
列ヘッダーが変数と同じ名前であることがわかります。 R では関数 names() を使用して列名を変更できます。 以下の R 作成データフレームの例を確認してください。
# Name the data frame names(df) <- c('ID', 'items', 'store', 'price') df
出力:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0 ## 3 30 textbook TRUE 10.0 ## 4 40 pencil_case FALSE 7.0
# Print the structure str(df)
出力:
## 'data.frame': 4 obs. of 4 variables: ## $ ID : num 10 20 30 40 ## $ items: Factor w/ 4 levels "book","pen","pencil_case",..: 1 2 4 3 ## $ store: logi TRUE FALSE TRUE FALSE ## $ price: num 2.5 8 10 7
デフォルトでは、データ フレームは文字列変数を要素として返します。
スライスデータフレーム
データフレームの値をスライスすることが可能です。 データ フレームの名前の前にある括弧内に返す行と列を選択します。
データ フレームは、行と列 df[A, B] で構成されます。 A は行を表し、B は列を表します。 行や列を指定してスライスできます。
写真 1 の左側の部分は、 行、 そして右側の部分は コラム。 記号: の意味に注意してください。 〜へ。 たとえば、1:3 は 1 から値を選択することを目的としています。 〜へ 3.
以下の図では、データ フレームのさまざまな選択にアクセスする方法を示しています。
- 黄色の矢印は、 行 で1 の項目に表示されます。 2
- 緑色の矢印は、 行 1〜2
- 赤い矢印は、 の項目に表示されます。 1
- 青い矢印は 行 1年から3年および コラム 3〜4
左側の部分を空白にすると、R が選択することに注意してください。 すべての行。 類推すると、右側の部分を空白にすると、R は選択します。 すべての列.
コンソールでコードを実行できます。
## Select row 1 in column 2 df[1,2]
出力:
## [1] book ## Levels: book pen pencil_case textbook
## Select Rows 1 to 2 df[1:2,]
出力:
## ID items store price ## 1 10 book TRUE 2.5 ## 2 20 pen FALSE 8.0
## Select Columns 1 df[,1]
出力:
## [1] 10 20 30 40
## Select Rows 1 to 3 and columns 3 to 4 df[1:3, 3:4]
出力:
## store price ## 1 TRUE 2.5 ## 2 FALSE 8.0 ## 3 TRUE 10.0
列を名前で選択することもできます。 たとえば、以下のコードは ID とストアの XNUMX つの列を抽出します。
# Slice with columns name df[, c('ID', 'store')]
出力:
## ID store ## 1 10 TRUE ## 2 20 FALSE ## 3 30 TRUE ## 4 40 FALSE
データフレームに列を追加する
データ フレームに列を追加することもできます。 データフレーム R 変数を追加し、R のデータフレームに列を追加するには、記号 $ を使用する必要があります。
# Create a new vector quantity <- c(10, 35, 40, 5) # Add `quantity` to the `df` data frame df$quantity <- quantity df
出力:
## ID items store price quantity ## 1 10 book TRUE 2.5 10 ## 2 20 pen FALSE 8.0 35 ## 3 30 textbook TRUE 10.0 40 ## 4 40 pencil_case FALSE 7.0 5
注意: ベクトルの要素数はデータフレームの要素数と同じである必要があります。次のステートメントを実行してデータフレームRに列を追加します。
quantity <- c(10, 35, 40) # Add `quantity` to the `df` data frame df$quantity <- quantity
エラーが発生します:
Error in ` lt;-.data.frame`(`*tmp*`, quantity, value = c(10, 35, 40)) replacement has 3 rows, data has 4
データ フレームの列を選択する
場合によっては、データ フレームの列を将来の使用のために保存したり、列に対して操作を実行したりする必要があります。$ 記号を使用して、データ フレームから列を選択できます。
# Select the column ID df$ID
出力:
## [1] 1 2 3 4
データフレームのサブセット化
前のセクションでは、条件なしで列全体を選択しました。 可能です サブセット 特定の条件が真かどうかに基づいて。
subset() 関数を使用します。
subset(x, condition) arguments: - x: data frame used to perform the subset - condition: define the conditional statement
価格が 10 を超える商品のみを返品したい場合は、次のようにします。
# Select price above 5 subset(df, subset = price > 5)
出力:
ID items store price 2 20 pen FALSE 8 3 30 textbook TRUE 10 4 40 pencil_case FALSE 7