我有一个每天增加1个单位的变量(让我们称之为cumulative date
)。您计算第1天到第10天的cumulative date
。我想创建第二个变量,名为phase
。阶段是“阶段1”、“阶段2”和“阶段3”。当cumulative date
分别为2.6、6.3和8.3或更大时,达到这些阶段。我想在R中创建一个函数来实现这一点,但诀窍是我只想在满足条件时添加阶段。
这是我的代码:
create_phase <- function(cumulative_date) {
phase <- case_when(
cumulative_date >= 8.3 ~ "phase3",
cumulative_date >= 6.3 ~ "phase2",
cumulative_date >= 2.6 ~ "phase1"
)
return(phase)
}
cumulative_date <- 1:10
phase <- cbind(cumulative_date, create_phase(cumulative_date))
这是结果,它接近我所需要的:
但我真正需要的是这个
1条答案
按热度按时间bxgwgixi1#
您可以按
phase
对数据进行分组,并将phase
中除第一个条目以外的所有条目都转换为NA
:虚拟数据:
df1 <- tibble(date = 1:10)
结果: