gpt4 book ai didi

r - 如何根据条件语句和 dplyr 创建新列?

转载 作者:行者123 更新时间:2023-12-05 09:20:47 24 4
gpt4 key购买 nike

x y
2 4
5 8
1 4
9 12

我有四个条件

  • maxx = 3, minx = 1, maxy = 6, miny = 3。(如果 minx < x < maxx 且 miny < y < maxy,则 z = apple)
  • maxx = 6,minx = 4,maxy = 9,miny = 7。(如果 minx < x < maxx 且 miny < y < maxy,则 z = ball)
  • maxx = 2,minx = 0,maxy = 5,miny = 3。(如果 minx < x < maxx 且 miny < y < maxy,则 z = pine)
  • maxx = 12,minx = 7,maxy = 15,miny = 11。(如果 minx < x < maxx 且 miny < y < maxy,则 z = orange)

预期结果:

x y z
2 4 apple
5 8 ball
1 4 pine
9 12 orange

我有数千行,这四个条件将适合所有值。

我如何使用 mutate 函数执行此操作?我知道如何直接操作数字,但不确定如何根据条件语句存储字符。

最佳答案

我认为这里最好的选择是使用 dplyr::case_when

df %>% mutate(z = case_when(
x < 3 & x > 1 & y < 6 & y > 3 ~ "apple" ,
x < 6 & x > 4 & y < 9 & y > 7 ~ "ball" ,
x < 2 & x > 0 & y < 5 & y > 3 ~ "pine" ,
x < 12 & x > 7 & y < 15 & y > 11 ~ "orange"
)
)

这给了我们:

# A tibble: 4 x 3
x y z
<dbl> <dbl> <chr>
1 2 4 apple
2 5 8 ball
3 1 4 pine
4 9 12 orange

关于r - 如何根据条件语句和 dplyr 创建新列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36003699/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com