gpt4 book ai didi

R Data Frame 按类别 ID 过滤多个逻辑条件

转载 作者:行者123 更新时间:2023-12-04 10:13:41 27 4
gpt4 key购买 nike

我正在尝试过滤使用列索引(称为 Insider CIK)的数据框。我想使用逻辑测试来排除表中没有 P-Purchase 和 S-Sale 或 M-Exempt 的 CIK 编号。每行都是一个单独的交易,由相应的 CIK 编号标识,有些可以是 P-Purchases 或 S-Sales,所以如果对于给定的 CIK 编号,如果它们是交易日志,我想删除它们的唯一类型。我已经尝试过 dplyr 过滤器功能,但我这样做的方式只考虑每一行以及它是否满足条件,而不是整个组(CIK 编号)。

这是我的示例脚本和 dput:

test8 <- test7 %>% group_by(`Insider CIK`) %>% filter(`Transaction Type`=='P-Purchase' & `Transaction Type`=='S-Sale' | `Transaction Type`=='M-Exempt')

dput(head(test7[c('Insider CIK', 'Transaction Type')], 100))
structure(list(`Insider CIK` = c("0001027035", "0001027035",
"0001027035", "0001027035", "0001027035", "0001027035", "0001032553",
"0001032553", "0001032553", "0001032553", "0001032553", "0001032553",
"0001032553", "0001032553", "0001032553", "0001032553", "0001032553",
"0001032553", "0001032553", "0001032553", "0001032553", "0001032553",
"0001032553", "0001032553", "0001032553", "0001032553", "0001032553",
"0001032553", "0001032553", "0001032553", "0001032553", "0001032553",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331", "0001033331", "0001033331",
"0001033331", "0001033331", "0001033331"), `Transaction Type` = c("S-Sale",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "M-Exempt", "S-Sale",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "M-Exempt",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "M-Exempt",
"S-Sale", "M-Exempt", "S-Sale", "S-Sale", "S-Sale", "S-Sale",
"S-Sale", "S-Sale", "S-Sale", "S-Sale", "M-Exempt", "S-Sale",
"M-Exempt", "S-Sale", "S-Sale", "S-Sale", "M-Exempt", "S-Sale",
"S-Sale", "S-Sale", "S-Sale", "M-Exempt", "S-Sale", "S-Sale",
"M-Exempt", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale",
"M-Exempt", "S-Sale", "S-Sale", "S-Sale", "S-Sale", "S-Sale",
"S-Sale", "S-Sale", "S-Sale")), row.names = 2:101, class = "data.frame")

我很感激你的帮助。

最佳答案

我们可以检查条件并使用 any获取整个组:

library(dplyr)

test7 %>%
group_by(`Insider CIK`) %>%
filter(any(`Transaction Type`=='P-Purchase') &
(any(`Transaction Type`=='S-Sale' | `Transaction Type`=='M-Exempt')))

关于R Data Frame 按类别 ID 过滤多个逻辑条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61190034/

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