gpt4 book ai didi

r - ifelse() 函数 - 引用第二天

转载 作者:行者123 更新时间:2023-12-04 11:57:48 24 4
gpt4 key购买 nike

我有一个包含 2 列的数据框:日期和返回值。

df <- tibble( 
date = lubridate::today() +0:9,
return= c(1,2.5,2,3,5,6.5,1,9,3,2))

现在我想添加带有 ifelse 条件的第三列。
如果第 t 天的返回高于 3.5,那么在随后的第 t+1 天的回滚是 NA(否则 = 第 t 天的返回)。

这是我想要的输出:
date         return      retrun_subsequent_day
<date> <dbl> <dbl>
1 2019-03-14 1 1
2 2019-03-15 2.5 2.5
3 2019-03-16 2 2
4 2019-03-17 3 3
5 2019-03-18 5 5
6 2019-03-19 6.5 NA
7 2019-03-20 1 NA
8 2019-03-21 9 9
9 2019-03-22 3 NA
10 2019-03-23 2 2

有人可以描述我如何制定这种条件吗?

最佳答案

一个 base R方法是将“return”的副本创建为新列“return_sub”,然后使用数字索引(“i1”),将值分配给 NA

i1 <- which(df$return > 3.5)
df$return_subsequent_day <- df$return
df$return_subsequent_day[pmin(i1 +1, nrow(df))] <- NA
df$return_subsequent_day
#[1] 1.0 2.5 2.0 3.0 5.0 NA NA 9.0 NA 2.0

关于r - ifelse() 函数 - 引用第二天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55165646/

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