[R言語]データフレームをループするには?

R言語

どうも、ちょげ(@chogetarou)です。

データフレーム(data.frame)をループする方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

データフレーム(data.frame)をループする方法は、3つあります。

特定の列をループ

1つ目は、特定の列をループする方法です。

まず、for(){}を記述します。

()内で、inの左辺にループ変数、右辺に「$」で選択したデータフレームの列を指定します。

そして、{}内にループ処理を指定します。

ループ処理では、ループ変数でデータフレームの選択した列の値を取得します。

#data=対象のデータフレーム, col=対象の列
for(value in data$col) {
  #ループ処理
  #ループ変数「value」でデータフレームの列の値を取得
}

上記のfor-in文は、対象のデータフレーム(data.frame)の選択した列をループします。

使用例

nums <- data.frame(col1=c(1, 2, 3, 4, 5),
                   col2=c(6, 7, 8, 9, 10),
                   col3=c(11, 12, 13, 14, 15),
                   col4=c(16, 17, 18, 19, 20))

nums
for(value in nums$col3) {
  print(value)
}
出力:
> nums
  col1 col2 col3 col4
1    1    6   11   16
2    2    7   12   17
3    3    8   13   18
4    4    9   14   19
5    5   10   15   20

> [1] 11
[1] 12
[1] 13
[1] 14
[1] 15

行番号でループ

2つ目は、行番号でループする方法です。

まず、for(){}を記述します。

()内で、inの左辺にループ変数、右辺に「1:nrow(データフレーム)」を指定します。

そして、{}内にループ処理を指定します。

ループ処理では、ループ変数でデータフレームの行番号を取得します。

#data=対象のデータフレーム
for(rowNumber in 1:nrow(data)) {
  #ループ処理
  #ループ変数「rowNumber」でデータフレームの行番号を取得
}

上記のfor-in文は、対象のデータフレーム(data.frame)を行番号でループします。

使用例

nums <- data.frame(col1=c(1, 2, 3, 4, 5),
                   col2=c(6, 7, 8, 9, 10),
                   col3=c(11, 12, 13, 14, 15),
                   col4=c(16, 17, 18, 19, 20))

for(rowNumber in 1:nrow(nums)) {
  print(nums[rowNumber,])
}
出力:
  col1 col2 col3 col4
1    1    6   11   16
  col1 col2 col3 col4
2    2    7   12   17
  col1 col2 col3 col4
3    3    8   13   18
  col1 col2 col3 col4
4    4    9   14   19
  col1 col2 col3 col4
5    5   10   15   20

列番号でループ

3つ目は、列番号でループする方法です。

まず、for(){}を記述します。

()内で、inの左辺にループ変数、右辺に「1:ncol(データフレーム)」を指定します。

そして、{}内にループ処理を指定します。

ループ処理では、ループ変数でデータフレームの列番号を取得します。

#data=対象のデータフレーム
for(colNumber in 1:ncol(data)) {
  #ループ処理
  #ループ変数「colNumber」でデータフレームの列番号を取得
}

上記のfor-in文は、対象のデータフレーム(data.frame)を列番号でループします。

使用例

nums <- data.frame(col1=c(1, 2, 3, 4, 5),
                   col2=c(6, 7, 8, 9, 10),
                   col3=c(11, 12, 13, 14, 15),
                   col4=c(16, 17, 18, 19, 20))

for(colNumber in 1:ncol(nums)) {
  print(nums[,colNumber])
}
出力:
[1] 1 2 3 4 5
[1]  6  7  8  9 10
[1] 11 12 13 14 15
[1] 16 17 18 19 20

まとめ

データフレーム(data.frame)をループする方法は、次の3つです。

  • 特定の列をループする方法
    for(value in data$col) { ループ処理 }
  • 行番号をループする方法
    for(rowNumber in 1:nrow(data)) { ループ処理 }
  • 列番号をループする方法
    for(colNumber in 1:ncol(data)) { ループ処理 }

コメント

タイトルとURLをコピーしました