【发布时间】:2021-01-25 09:43:21
【问题描述】:
我正在苦苦思考如何仅使用基于日期的第一个正面测试来创建数据框的子样本。我将展示一个玩具示例。假设我有以下内容;
df = data.frame(guy = c("A", "B", "A", 'B', "C", "C"),
test1 = c(1, 1, 0, 0, 1, 0),
test2 = c(0, 1, 0, 1, 0, 0),
test3 = c(0, 0, 1, 0, 0, 1),
date = as.Date(c('1999-10-20', '1999-10-21', '1999-10-22', '1999-10-23', '1999-10-24', '1999-10-25')));df
#guy test1 test2 test3 date
#1 A 1 0 0 1999-10-20
#2 B 1 1 0 1999-10-21
#3 A 0 0 1 1999-10-22
#4 B 0 1 0 1999-10-23
#5 C 1 0 0 1999-10-24
#6 C 0 0 1 1999-10-25
现在,我想过滤,根据最旧的 date 仅选择第一个阳性测试(即 test1|test2|test3 = 1)。在我的示例中,我会得到以下信息:
#guy test1 test2 test3 date
#1 A 1 0 0 1999-10-20
#2 B 1 1 0 1999-10-21
#3 C 1 0 0 1999-10-24
数据框:
df = data.frame(guy = c("A", "B", "A", 'B', "C", "C"),
test1 = c(1, 1, 0, 0, 1, 0),
test2 = c(0, 1, 0, 1, 0, 0),
test3 = c(0, 0, 1, 0, 0, 1),
date = as.Date(c('1999-10-20', '1999-10-21', '1999-10-22', '1999-10-23', '1999-10-24', '1999-10-25')));df
任何提示我该怎么做?
【问题讨论】:
-
为什么
sqlite被标记在这里? -
test1 列有字符串 A、B 和 C,您需要如何将其与 1 进行比较?
标签: r database dataframe select filter