如何在 R 中进行条件替换?

How can I do conditional replacement in R?

这是一个简单的 R 条件问题。
这是一个示例数据框。 ""代表空格

>df  
    A   B  
    1   Y  
    1   N  
    ""  Y  
    0   N  
    ""  N  
    1   Y  
    0   Y  
    ""  N  
    0   Y

我正在尝试检查 IF df$B == "Y" 然后在 df$A 的空白处打印 1。

我试过了df$A[df$A == ""] <- df$B[df$B == "Y"]
这会将所有空格更改为 "Y".

请帮忙!

这就是你想要的吗?

library("dplyr")
library("tibble")

df <- 
tibble::tribble(
  ~A,   ~B,
  1,  "Y",
  1,  "N",
  "",  "Y",
  0,  "N",
  "",  "N",
  1,  "Y",
  0,  "Y",
  "",  "N",
  0,  "Y")

df %>% mutate(A = ifelse(B == "Y" & A == "",1,A))
#> # A tibble: 9 x 2
#>       A     B
#>   <chr> <chr>
#> 1     1     Y
#> 2     1     N
#> 3     1     Y
#> 4     0     N
#> 5           N
#> 6     1     Y
#> 7     0     Y
#> 8           N
#> 9     0     Y

这是一个基本版本:

df$A <- ifelse(df$B == "Y" & df$A == "",1,df$A)