A: データフレーム内の値を条件付きで置き換える方法


次のいずれかの方法を使用して、データ フレーム内の値を条件付きで置き換えることができます。

方法 1: データ フレーム全体の値を置換する

 #replace all values in data frame equal to 30 with 0
df[df == 30 ] <- 0

方法 2: 特定の列の値を置換する

 #replace values equal to 30 in 'col1' with 0
df$col1[df$col1 == 30 ] <- 0

方法 3: 特定の列の値を別の列に基づいて置き換える

 #replace values in col2 with 0 based on rows in col1 equal to 30
df$col2[df$col1 == 30 ] <- 0 

次の例は、次のデータ フレームで各メソッドを実際に使用する方法を示しています。

 #create data frame
df <- data. frame (team=c('A', 'A', 'B', 'B', 'B'),
                 points=c(99, 90, 90, 88, 88),
                 assists=c(33, 28, 31, 30, 34),
                 rebounds=c(30, 30, 24, 24, 28))

#view data frame
df

  team points assists rebounds
1 A 99 33 30
2 A 90 28 30
3 B 90 31 24
4 B 88 30 24
5 B 88 34 28

方法 1: データ フレーム全体の値を置換する

次のコードは、データ フレーム内の 30 に等しいすべての値を 0 に置き換える方法を示しています。

 #replace all values in data frame equal to 30 with 0
df[df == 30 ] <- 0

#view updated data frame
df
  team points assists rebounds
1 A 99 33 0
2 A 90 28 0
3 B 90 31 24
4 B 88 0 24
5 B 88 34 28

方法 2: 特定の列の値を置換する

次のコードは、「ポイント」列の 90 に等しいすべての値を 0 に置き換える方法を示しています。

 #replace all values equal to 90 in 'points' column with 0
df$points[df$points == 90 ] <- 0

#view updated data frame
df

  team points assists rebounds
1 A 99 33 30
2 A 0 28 30
3 B 0 31 24
4 B 88 30 24
5 B 88 34 28

方法 3: 特定の列の値を別の列に基づいて置き換える

次のコードは、「ポイント」列の値を 0 に置き換える方法を示しています。ここで、「チーム」列の値は「B」と等しくなります。

 #replace all values equal to 90 in 'points' column with 0
df$points[df$team == ' B '] <- 0

#view updated data frame
df

  team points assists rebounds
1 A 99 33 30
2 A 90 28 30
3 B 0 31 24
4 B 0 30 24
5 B 0 34 28

追加リソース

次のチュートリアルでは、R で他の一般的な操作を実行する方法について説明します。

A: 複数の列に基づいてデータ フレームを結合する方法
A: 他の列に基づいてデータ フレームに列を追加する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です