2017-07-12 13 views
0

これは、Rの簡単な条件付き問題です。
サンプルデータフレームです。 "Y"、空白スペースでのdf $ Aに1を印刷 "私はDFます$ Bの==はかどうかを確認しようとしていますRで条件付き置換を行うにはどうすればよいですか?

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

空白を表します"。

私は試しましたdf$A[df$A == ""] <- df$B[df$B == "Y"]
これはすべての空白を "Y"に変更します。

助けてください!

答えて

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) 
関連する問題