例如,我有一张桌子
字段1 | 字段2 | 领域3 | 领域4 |
---|---|---|---|
1 | A | 是 | |
2 | B | 是 | |
3 | B | N | |
4 | A | 是 |
如果我有一个 SQL 查询,我在其中写 ::
选择 当 Field1 = '1' 且 Field2 = 'A' 然后 Field3 时的情况 Else Field4 End 作为 NameOfField 从表
问题:如何在 RStudio 中编写相同的查询?
先谢谢了
R 中的 SQL 查询的等效项将如下所示:
library(dplyr)
df |>
mutate(
NameOfField = case_when(Field1 == "1" & Field2 == "A" ~ Field3,
TRUE ~ Field4)
)
有输出:
#> Field1 Field2 Field3 Field4 NameOfField
#> 1 1 A Y <NA> Y
#> 2 2 B <NA> Y Y
#> 3 3 B <NA> N N
#> 4 4 A Y <NA> <NA>
此外,由于您的查询仅检查一个条件,我可以使用
ifelse
: 建议另一种方法
df |>
mutate(
NameOfField = ifelse(Field1 == "1" & Field2 == "A",
Field3,
Field4)
)
# output
#> Field1 Field2 Field3 Field4 NameOfField
#> 1 1 A Y <NA> Y
#> 2 2 B <NA> Y Y
#> 3 3 B <NA> N N
#> 4 4 A Y <NA> <NA>