如何在 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)
这是一个简单的 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)