我想做與這個問題相同的問題:
根據 R 中先前出現的情況分配虛擬值
但我不僅希望“dummycount”列在“dummy”列中的前一年發生的事件取值為 1,而且在發生的同一年也取值 1。
你能幫我嗎?
uj5u.com熱心網友回復:
這是你想要達到的目標嗎?
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
df1 <- read.table(
text = "nameID titleID year dummy
a b 1999 1
e c 1999 1
i d 2000 0
o f 2000 0
a f 2000 1
e g 2001 0
i h 2002 0
i j 2003 0
u k 2003 1
o l 2004 1
a m 2004 0
o m 2004 0
u n 2005 0",
header = TRUE
)
df1 %>%
group_by(nameID) %>%
mutate(dummycount = ifelse(cummax(lag(dummy, default = 0)) >= 1 | cummax(dummy) >= 1, 1, 0))
#> # A tibble: 13 × 5
#> # Groups: nameID [5]
#> nameID titleID year dummy dummycount
#> <chr> <chr> <int> <int> <dbl>
#> 1 a b 1999 1 1
#> 2 e c 1999 1 1
#> 3 i d 2000 0 0
#> 4 o f 2000 0 0
#> 5 a f 2000 1 1
#> 6 e g 2001 0 1
#> 7 i h 2002 0 0
#> 8 i j 2003 0 0
#> 9 u k 2003 1 1
#> 10 o l 2004 1 1
#> 11 a m 2004 0 1
#> 12 o m 2004 0 1
#> 13 u n 2005 0 1
由reprex 包(v2.0.1)于 2021 年 11 月 8 日創建
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/352275.html
上一篇:如何調整訂單輸出表
