【发布时间】:2017-04-27 15:52:44
【问题描述】:
我目前有一个数据集,该数据集显示了每天按地点划分的患病人数。对于每个组(位置),在“生病”列中输出 1(生病)或 0(未生病)来说明该地区是否有生病。
我的目标是创建一个新列,用于识别长期疾病的时期并标记任何导致此疾病的行。
以下数据框显示了示例数据:
Current <- structure(list(Location = c("Madrid", "Madrid", "Madrid", "Madrid",
"Madrid", "Madrid", "Madrid", "Madrid", "Madrid", "Madrid", "Madrid",
"Madrid", "Madrid", "Madrid", "Madrid"), Date = structure(c(16122,
16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131,
16132, 16133, 16134, 16135, 16136), class = "Date"), Sick = c(1,
1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0)), .Names = c("Location",
"Date", "Sick"), row.names = c(NA, -15L), class = c("tbl_df",
"tbl", "data.frame"))
我想应用于新列的规则如下:
*# 如果在任何 6 天期间有 4 天的病假,则所有记录病假的天数都应在新的计算变量(“类型”)中输入“长期”。如果不满足此条件,则应在称为“类型”的新计算变量中输入“短期”。
为此,我需要它按组执行计算。位置是此分析中的组,因此我的目标是能够根据位置来上课。我无法解决这个问题。
所需的输出如下所示:
Desired <- structure(list(Location = c("Madrid", "Madrid", "Madrid", "Madrid",
"Madrid", "Madrid", "Madrid", "Madrid", "Madrid", "Madrid", "Madrid",
"Madrid", "Madrid", "Madrid", "Madrid"), Date = structure(c(16122,
16123, 16124, 16125, 16126, 16127, 16128, 16129, 16130, 16131,
16132, 16133, 16134, 16135, 16136), class = "Date"), Sick = c(1,
1, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0), Type = c(NA, NA, NA,
NA, NA, "Long Term", "Long Term", "Long Term", "Long Term", NA,
"Long Term", "Long Term", "Long Term", "Long Term", NA)), .Names = c("Location",
"Date", "Sick", "Type"), row.names = c(NA, -15L), class = c("tbl_df",
"tbl", "data.frame"))
非常感谢您对此提供的任何帮助,并且对有关问题样式和布局的任何反馈也很有帮助。
目前,我遇到的问题是只有符合 ifelse 标准的 Window 术语被标记为“Long Term”。我需要的是所有形成窗口测试并且疾病为 1 的观察结果都被标记为“长期”:
【问题讨论】:
标签: r date if-statement dplyr