r - 如何使用 IF 函数更新数据框中的列?

predict <- read.table(header=TRUE, text="
  0         1 
  0.44      0.55     
  0.76      0.24     
  0.71      0.29    
  0.75      0.24 
  0.25      0.75
")

我附上了一个示例数据框,其中包含 2 列,标题为“0”和“1”。我想使用一个 IF 函数,这样如果 0 列中的值大于 0.7,单元格就会更新为其中有一个 0 值。此外,如果“1”列中的值大于 0.7,则单元格更新为其中包含 1 值。最后,如果“0”或“1”值都不大于 0.7,我希望单元格返回 -99。我附上了一个示例,说明在应用此 IF 函数后我的样本会是什么样子。

predict <- read.table(header=TRUE, text="
      0         1 
      -99      -99     
      0        0.24     
      0        0.29    
      0        0.24 
      0.25     1
    ")

我尝试过的代码是;

if(predict[,1] > 0.7 ){predict[,1] == '0' }
if(predict[,1] > 0.7 ){predict[,2] == '1' }

如果您能就更新此 IF 函数的最佳方式向我提出建议,我们将不胜感激。

最佳答案

更新

基于 AniGoyal 的干预(非常感谢!!!) 我更新了答案以满足 OP 的确切期望输出: 我将两个答案组合在一个代码中以获得所需的输出:

代码:

predict %>%
  as_tibble %>% 
  mutate(a =  case_when(X0 > 0.7 ~ 0,
                         TRUE ~ ifelse(X0 < 0.7 & X1 < 0.7, -99, X0)),
         b =  case_when(X1 > 0.7 ~ 1,
                         TRUE ~ ifelse(X1 < 0.7 & X0 < 0.7, -99, X1))
         ) %>% 
  select(X0 = a, X1=b)

输出:

      X0      X1
   <dbl>   <dbl>
1 -99    -99    
2   0      0.24 
3   0      0.290
4   0      0.24 
5   0.25   1    

我们可以使用 dplyr 包中的 case_whenMutate 根据 den case_when 条件更改列 X0X1

library(dplyr)

predict %>% 
  mutate(X0 = case_when(X0 > 0.7 ~ 0,
                        TRUE ~ -99),
         X1 = case_when(X1 > 0.7 ~ 1,
                        TRUE ~ -99)
  )

输出:

   X0  X1
1 -99 -99
2   0 -99
3   0 -99
4   0 -99
5 -99   1

ifelse

或者我们可以使用ifelse https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/ifelse

predict$X0 <- ifelse(predict$X0 > 0.7, 0, -99)
predict$X1 <- ifelse(predict$X1 > 0.7, 1, -99)
predict

https://stackoverflow.com/questions/66932266/

相关文章:

python - Django 在速记渲染方法中添加自定义 header

java - 如何总结对象流的数字属性?

flutter - 如何在 Flutter 中将标签空间禁用到 bottomNavigationBa

java - 使用 java Supplier 接口(interface)创建条件对象

javascript - 数组 .includes() 给出意外行为

arrays - 无法打印字符串常量数组字符串的内容?

c# - 手动创建 JSON

flutter - 运算符 '*' 不能无条件调用,因为接收者可以是 'null' 。尝试向目标 (

docker - 未知速记标志 : 'a' in -a in docker

java - 将 java.util.function.Function 定义为 static fi