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