gpt4 book ai didi

r - 根据组分配最大 n 值

转载 作者:行者123 更新时间:2023-12-05 01:25:55 25 4
gpt4 key购买 nike

我试图通过考虑 val1 和 val2 的“1”中的“2”的最大值来得到 out_val
例如:来自 val1 的第 3 组
在第 1 行中出现值“0”,因此其在 out_value 中的值为“0”
在第 2 行中出现值“1”,因此其在 out_value 中的值为“1”
在第 3 行中出现值“1”,因此其在 out_value 中的值为“1”
在第 4 行出现值“2”,因此它在 out_value 中的值为“2”(这里我得到了 2)
从第 5 行到第 6 行将出现值“0”

来自 val1 的第 6 组
在第 7 行中出现值“1”,因此其在 out_value 中的值为“1”
在第 8 行中出现值“2”,因此它在 out_value 中的值为“2”(这里我得到了 2)
从第 9 行到第 10 行将出现值“0”

val1 = c(3,3,3,3,3,3,6,6,6,6)
val2 = c(0,1,1,2,1,2,1,2,1, 2)

df = data.frame(val1,val2)

out_value = c(0,1,1,2,0,0,1,2,0,0)
df_out = data.frame(val1,val2,out_value)

最佳答案

如果您希望前 2 个值之后的值为零,请使用 dplyr::cumany,如果您希望该值为每组的最大值,请使用 dplyr::cummax :

df %>% 
group_by(val1) %>%
mutate(out_val = ifelse(lag(cumany(val2 == 2), default=0), 0, val2))

# A tibble: 10 x 3
# Groups: val1 [2]
val1 val2 out_val
<dbl> <dbl> <dbl>
1 3 0 0
2 3 1 1
3 3 1 1
4 3 2 2
5 3 1 0
6 3 2 0
7 6 1 1
8 6 2 2
9 6 1 0
10 6 2 0

关于r - 根据组分配最大 n 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70606933/

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