A:如何有条件地替换数据框中的值


您可以使用以下方法之一有条件地替换数据框中的值:

方法一:跨整个数据框替换值

 #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

方法一:跨整个数据框替换值

下面的代码展示了如何将数据框中所有等于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:替换特定列中的值

以下代码展示了如何将“points”列中所有等于 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:根据另一列替换特定列中的值

下面的代码展示了如何将“points”列中的值替换为0,其中“team”列中的值等于“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:如何根据其他列向数据框添加列

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注