【发布时间】:2020-04-18 15:55:59
【问题描述】:
我想从数据集中删除特定的观察结果。每个观察都有一个序列号(标识号)、Day(从周一到周日的工作日)7 个变量 day1 到 day7,每个变量代表一周中的一天。第 1 天是星期一,第 7 天是星期日。
我想删除第 1 天...第 7 天等于零的那些观察结果(连续剧)。这是 id 12 的情况,在星期一期间没有进行任何观察(例如,与第 1 天匹配的日期返回零)。以 123 为例,周二有 3 个观察记录,我想保留这个序列。
我尝试将数据转换为 long 并基于此进行匹配但没有成功。
输入:
serial day1 day2 day3 day4 day5 day6 day7 Day
12 0 1 2 1 1 3 1 Monday
123 0 3 0 3 3 0 3 Tuesday
10 0 3 0 3 3 3 3 Thursday
输出:
serial day1 day2 day3 day4 day5 day6 day7 Day
123 0 3 0 3 3 0 3 Tuesday
样本数据
structure(list(serial = c(12, 123, 10), day1 = c(0, 0, 0), day2 = c(1,
3, 3), day3 = c(2, 0, 0), day4 = c(1, 3, 3), day5 = c(1, 3, 3
), day6 = c(3, 0, 3), day7 = c(1, 3, 3), Day = structure(c(1L,
3L, 2L), .Label = c("Monday", "Thursday", "Tuesday"), class = "factor")), row.names = c(NA,
3L), class = "data.frame")
【问题讨论】:
-
能否补充一些已经失败的解决方案?
-
@NelsonGon 非常感谢我尝试改变数据并匹配 Days。,
-
你说删除第 1 天或第 7 天等于 0 的观察结果。序列 123 的条件是第 1 天为 0,为什么它没有被删除
-
创建第二个数据框,在其中添加匹配条件。