如何在 R Studio 中编写 case-when-then 案例

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

例如,我有一张桌子

字段1 字段2 领域3 领域4
1 A
2 B
3 B N
4 A

如果我有一个 SQL 查询,我在其中写 ::

选择 当 Field1 = '1' 且 Field2 = 'A' 然后 Field3 时的情况 Else Field4 End 作为 NameOfField 从表

问题:如何在 RStudio 中编写相同的查询?

先谢谢了

rstudio
1个回答
0
投票

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