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

问题描述 投票:0回答:1

这是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”。

请帮忙!

r dplyr conditional
1个回答
1
投票

这就是你追求的吗?

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)
© www.soinside.com 2019 - 2024. All rights reserved.