gpt4 book ai didi

r - 根据行索引在 R 中创建索引变量

转载 作者:行者123 更新时间:2023-12-04 09:07:48 27 4
gpt4 key购买 nike

我想是时候寻求帮助了。假设我有这个 data.frame 或 data.table

State   Date   Event 
CA Oct27 1
CA Oct28 0
CA Oct29 0
CA Oct30 0
CA Oct31 1
TX Oct27 0
TX Oct28 1
TX Oct29 1
TX Oct30 0
TX Oct31 0
TX Nov1 0

我想创建一个新的二进制变量“active”,它指示在特定日期和状态是否有事件事件(假设所有事件都持续三天)。 “事件”列中的值“1”表示事件开始的时间。所以,我的数据看起来像这样:

State   Date   Event Active
CA Oct27 1 1
CA Oct28 0 1
CA Oct29 0 1
CA Oct30 0 0
CA Oct31 1 1
TX Oct27 0 0
TX Oct28 1 1
TX Oct29 1 1
TX Oct30 0 1
TX Oct31 0 1
TX Nov1 0 0

如果有任何建议,我将不胜感激。

最佳答案

考虑到你的表是排序的并且你不关心非相邻的日子,你可以尝试:

library(data.table)
setDT(df)[, Active:=Event|c(0, head(Event,-1))|c(0,0,head(Event,-2)), State][
, Active:=Active+0]

# State Date Event Active
# 1: CA Oct27 1 1
# 2: CA Oct28 0 1
# 3: CA Oct29 0 1
# 4: CA Oct30 0 0
# 5: CA Oct31 1 1
# 6: TX Oct27 0 0
# 7: TX Oct28 1 1
# 8: TX Oct29 1 1
# 9: TX Oct30 0 1
#10: TX Oct31 0 1
#11: TX Nov1 0 0

关于r - 根据行索引在 R 中创建索引变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30381577/

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