【发布时间】:2018-05-22 09:41:43
【问题描述】:
原始数据框是
id status name ...
1 0 V
1 0 S
1 1 V
1 0 V
2 0 V
2 1 V
2 1 S
3 0 V
3 1 S
4 1 S
4 0 V
4 1 V
除此之外,我希望获取 id 2 和 3,因为在它们的子集中我有一个“0-V”组合,后跟“1-S”
我已将其拆分为数据帧列表,我想获取这些数据帧上某些特定条件的 id,但我收到错误
invalid subscript type 'list'
结构如下
"1"
id status name ...
1 0 V
1 0 S
1 1 V
1 0 V
"2"
id status name ...
2 0 V
2 1 V
2 1 S
...
现在我需要找到一个条件,以便我获得 id,其中有 0 状态和名称“V”的记录,后跟 1 状态和名称“S”,如 id 2。
为此,我正在尝试为 sapply 编写一个函数,但我无法为数据下标,因为我假设它是
这里是代码
q4 <- result1[,c("id", "name", "date", "status")]
lstQ <- split(q4, result1$id)
f3 <- function(g) {
g[g$status == 0 & g$name == "V",]
}
e <- as.data.frame(names(lstQ)[sapply(lstQ, f3)])
如何下标我的数据框以获得所需的检查条件?
【问题讨论】:
-
我不明白你为什么要拆分原始的data.frame。如果没有这一步,这样做会容易得多。请提供您的 data.frame 示例:stackoverflow.com/a/5963610/1412059
-
@Roland 已编辑。我这样做是因为我需要获取用户 ID 列表。