Фильтр по индексу для условий нескольких строк R - PullRequest
0 голосов
/ 13 апреля 2020

Я пытаюсь выполнить окончательный фильтр для фрейма данных, который имеет столбец значений индекса (Insider CIK) и рассматривает соответствующее значение в столбце (Дней с момента последней подачи). Для данного Insider CIK, если в строках содержится только 0, я бы хотел, чтобы строка была отброшена. Для номеров Insider CIK со значением строки 0 И другой строкой, содержащей этот номер CIK <= 90, я хотел бы сохранить обе строки. </p>

Вот команда, которую я использую с dplyr:

    test3 <- test2 %>% group_by(`Insider CIK`) %>% filter(`Days Since Most Recent Filing` <= 90 & `Days Since Most Recent Filing` == 0)


Here is a sample of test3:

    dput(head(test2[c('Insider CIK', 'Transaction Date', 'Issuer','Days Since Most Recent Filing')], 50))
structure(list(`Insider CIK` = c("0001008134", "0001008134", 
"0001008134", "0001008134", "0001008134", "0001008134", "0001008134", 
"0001008134", "0001008134", "0001008134", "0001008134", "0001008134", 
"0001008134", "0001008134", "0001008134", "0001008134", "0001008134", 
"0001008134", "0001008134", "0001008134", "0001008134", "0001012859", 
"0001012859", "0001012859", "0001012859", "0001012859", "0001012859", 
"0001012859", "0001012859", "0001012859", "0001012859", "0001012859", 
"0001012859", "0001012859", "0001012859", "0001012859", "0001012859", 
"0001012859", "0001012859", "0001012859", "0001012859", "0001012859", 
"0001012859", "0001012859", "0001012859", "0001012859", "0001012859", 
"0001012859", "0001012859", "0001012859"), `Transaction Date` = structure(c(18358, 
18358, 18065, 18065, 17674, 17674, 17345, 17345, 16964, 16964, 
16598, 16582, 16582, 16409, 16245, 16245, 15710, 15710, 15354, 
15354, 14840, 18358, 18358, 18019, 18019, 17611, 17611, 17287, 
17287, 16881, 16881, 16784, 16662, 16114, 16114, 15819, 15819, 
15583, 15583, 15428, 15377, 15211, 15120, 15120, 15096, 15096, 
15096, 15020, 15020, 14886), class = "Date"), Issuer = c("TRANSATLANTIC PETROLEUM LTD.", 
"TRANSATLANTIC PETROLEUM LTD.", "TRANSATLANTIC PETROLEUM LTD.", 
"TRANSATLANTIC PETROLEUM LTD.", "TRANSATLANTIC PETROLEUM LTD.", 
"TRANSATLANTIC PETROLEUM LTD.", "TRANSATLANTIC PETROLEUM LTD.", 
"TRANSATLANTIC PETROLEUM LTD.", "TRANSATLANTIC PETROLEUM LTD.", 
"TRANSATLANTIC PETROLEUM LTD.", "TRANSATLANTIC PETROLEUM LTD.", 
"TRANSATLANTIC PETROLEUM LTD.", "TRANSATLANTIC PETROLEUM LTD.", 
"Seventy Seven Energy Inc.", "TRANSATLANTIC PETROLEUM LTD.", 
"TRANSATLANTIC PETROLEUM LTD.", "TRANSATLANTIC PETROLEUM LTD.", 
"TRANSATLANTIC PETROLEUM LTD.", "TRANSATLANTIC PETROLEUM LTD.", 
"TRANSATLANTIC PETROLEUM LTD.", "TRANSATLANTIC PETROLEUM LTD.", 
"NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", 
"NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", 
"NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", 
"NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", 
"NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", 
"NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", 
"NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", "CROSS BORDER RESOURCES, INC.", 
"CROSS BORDER RESOURCES, INC.", "CROSS BORDER RESOURCES, INC.", 
"NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", 
"NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP", "NATIONAL HEALTHCARE CORP"
), `Days Since Most Recent Filing` = structure(c(0, 0, 293, 293, 
684, 684, 1013, 1013, 1394, 1394, 1760, 1776, 1776, 1949, 2113, 
2113, 2648, 2648, 3004, 3004, 3518, 0, 0, 339, 339, 747, 747, 
1071, 1071, 1477, 1477, 1574, 1696, 2244, 2244, 2539, 2539, 2775, 
2775, 2930, 2981, 3147, 3238, 3238, 3262, 3262, 3262, 3338, 3338, 
3472), class = "difftime", units = "days")), class = c("grouped_df", 
"tbl_df", "tbl", "data.frame"), row.names = c(NA, -50L), groups = structure(list(
    `Insider CIK` = c("0001008134", "0001012859"), .rows = list(
        1:21, 22:50)), row.names = c(NA, -2L), class = c("tbl_df", 
"tbl", "data.frame"), .drop = TRUE))

Помощь очень ценится.

...