Непоследовательная фильтрация выбора ввода в R Shiny

Я пытаюсь обобщить подход Иерархические поля выбора, описанный в книге Mastering Shiny, чтобы включить непоследовательную фильтрацию. В настоящее время метод детализации работает только в том случае, если пользователь выбирает категории в определенном порядке, например, Территория -> Клиент -> Номер заказа. Однако я хотел бы, чтобы детализация работала независимо от первоначального ввода, который вводит пользователь. Кроме того, мое приложение включает примерно 10 входных данных, поэтому я хочу, чтобы код был масштабируемым.

Я следовал примеру из книги Mastering Shiny, но у меня возникли трудности с адаптацией кода для непоследовательной фильтрации. В частности, когда я пытаюсь изменить код для обеспечения непоследовательной фильтрации, поля выбора перестают отвечать на запросы.

Любые предложения о том, как изменить код, чтобы разрешить непоследовательную фильтрацию, будут очень признательны.

Вы можете найти {shinyTree} ( github.com/shinyTree/shinyTree) полезным. Он предлагает вам сворачиваемое/расширяемое иерархическое дерево флажков, а также поле ввода для глубокого поиска узлов дерева.

I_O 16.02.2023 21:52

@ismirsehregal это именно то, что я ищу, спасибо! Не могли бы вы опубликовать ответ, и я приму его?

mat 21.02.2023 07:33
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
2
69
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Один из способов сделать это — изменить и отфильтровать базовые данные. Итак, создайте вложенный список всех возможных комбинаций значений фильтра, а затем используйте функцию reduce() из пакета purrr для итеративного применения фильтрации.

Пример:

Допустим, я хочу отфильтровать продажи пищевых добавок. Предположим, у нас есть фрейм данных df со столбцами Supplement, Customer и OrderNumber.

library(shiny)
library(purrr)

# Create a nested list of all possible filter combinations
filters <- list(
  by_Supplement = split(df, df$Supplement),
  by_customer = map(filters$by_Supplement, ~split(.x, .x$Customer)),
  by_order_number = map(filters$by_customer, ~map(.x, ~split(.x, .x$OrderNumber)))
)

# Define a function to filter the data by a list of filter values
filter_data <- function(data, filters) {
  reduce(filters, function(data, filter) {
    if (!is.null(filter)) {
      data %>% filter(!!!filter)
    } else {
      data
    }
  }, .init = data)
}

# Define the Shiny app UI
ui <- fluidPage(
  selectInput("Supplement", "Supplement", choices = names(filters$by_Supplement)),
  uiOutput("customer"),
  uiOutput("order_number"),
  tableOutput("table")
)

# Define the Shiny app server
server <- function(input, output, session) {
  output$customer <- renderUI({
    Supplement_data <- filters$by_Supplement[[input$Supplement]]
    selectInput("customer", "Customer", choices = c("", names(Supplement_data)))
  })
  
  output$order_number <- renderUI({
    Supplement_data <- filters$by_Supplement[[input$Supplement]]
    if (!is.null(input$customer)) {
      customer_data <- Supplement_data[[input$customer]]
      selectInput("order_number", "Order Number", choices = c("", customer_data$OrderNumber))
    } else {
      selectInput("order_number", "Order Number", choices = "")
    }
  })
  
  output$table <- renderTable({
    filter_values <- list(Supplement = input$Supplement, Customer = input$customer, OrderNumber = input$order_number)
    filtered_data <- filter_data(df, map(filters, ~if (!is.null(.x)) .x[[filter_values[[names(.x)]]]]))
    filtered_data
  })
}

# Run the Shiny app
shinyApp(ui, server)

filter_data() переходит в output$table со списком значений фильтра через map() и имеет текущие выбранные значения всех трех полей выбора, независимо от порядка выбора.

Ответ принят как подходящий

Вот как применить модуль selectizeGroup из библиотеки ( ShinyWidgets) к данным данного примера.

Этот модуль создает

Группа взаимозависимых selectizeInput для фильтрации столбцы data.frame (как в Excel).

library(DT)
library(shiny)
library(shinyWidgets)

# csv source: https://github.com/hadley/mastering-shiny/blob/main/sales-dashboard/sales_data_sample.csv
# sales <- read.csv("sales_data_sample.csv")
# dput(head(na.omit(sales[, c("TERRITORY", "CUSTOMERNAME", "ORDERNUMBER")]), 100))

ui <- fluidPage(
  fluidRow(
    column(width = 10, offset = 1, tags$h3("Filter data with selectize group")),
    column(width = 6, offset = 1, 
           selectizeGroupUI(
             id = "my-filters",
             params = list(
               TERRITORY = list(inputId = "TERRITORY", title = "TERRITORY:"),
               CUSTOMERNAME = list(inputId = "CUSTOMERNAME", title = "CUSTOMERNAME:"),
               ORDERNUMBER = list(inputId = "ORDERNUMBER", title = "ORDERNUMBER:")
             ),
             inline = TRUE
           )),
    column(
      width = 10, offset = 1,DT::dataTableOutput(outputId = "table")
    )
  )
)

server <- function(input, output, session) {
  filtered_table <- callModule(
    module = selectizeGroupServer,
    id = "my-filters",
    data = sales,
    vars = names(sales),
    inline = TRUE
  )
  
  output$table <- DT::renderDataTable({
    datatable(filtered_table(), rownames = FALSE)
  })
}

shinyApp(ui, server)

Пример данных:

sales <- structure(list(TERRITORY = c("EMEA", "EMEA", "EMEA", "EMEA", 
"EMEA", "APAC", "EMEA", "EMEA", "EMEA", "EMEA", "APAC", "EMEA", 
"EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "Japan", "APAC", "EMEA", 
"Japan", "APAC", "EMEA", "EMEA", "EMEA", "APAC", "APAC", "EMEA", 
"APAC", "EMEA", "EMEA", "EMEA", "Japan", "APAC", "EMEA", "EMEA", 
"Japan", "APAC", "APAC", "EMEA", "EMEA", "APAC", "EMEA", "EMEA", 
"EMEA", "Japan", "APAC", "EMEA", "EMEA", "Japan", "APAC", "EMEA", 
"EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", 
"EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", 
"EMEA", "EMEA", "EMEA", "Japan", "EMEA", "EMEA", "EMEA", "APAC", 
"APAC", "APAC", "EMEA", "EMEA", "APAC", "APAC", "APAC", "EMEA", 
"Japan", "EMEA", "APAC", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", 
"EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA", "EMEA"
), CUSTOMERNAME = c("Reims Collectables", "Lyon Souveniers", 
"Daedalus Designs Imports", "Herkku Gifts", "Auto Canal Petit", 
"Australian Collectors, Co.", "La Rochelle Gifts", "Toys of Finland, Co.", 
"Baane Mini Imports", "Salzburg Collectables", "Souveniers And Things Co.", 
"La Rochelle Gifts", "UK Collectables, Ltd.", "Euro Shopping Channel", 
"Baane Mini Imports", "Volvo Model Replicas, Co", "Corrida Auto Replicas, Ltd", 
"Dragon Souveniers, Ltd.", "Australian Gift Network, Co", "Saveley & Henriot, Co.", 
"Tokyo Collectables, Ltd", "Souveniers And Things Co.", "Amica Models & Co.", 
"Scandinavian Gift Ideas", "Auto Assoc. & Cie.", "Australian Collectors, Co.", 
"Anna's Decorations, Ltd", "Euro Shopping Channel", "Australian Collectors, Co.", 
"Lyon Souveniers", "Daedalus Designs Imports", "Herkku Gifts", 
"Osaka Souveniers Co.", "Australian Collectors, Co.", "La Rochelle Gifts", 
"Atelier graphique", "Tokyo Collectables, Ltd", "Souveniers And Things Co.", 
"Australian Gift Network, Co", "Auto Canal Petit", "Euro Shopping Channel", 
"Australian Collectors, Co.", "Lyon Souveniers", "Daedalus Designs Imports", 
"Herkku Gifts", "Osaka Souveniers Co.", "Australian Collectors, Co.", 
"La Rochelle Gifts", "Toys of Finland, Co.", "Tokyo Collectables, Ltd", 
"Australian Gift Network, Co", "UK Collectables, Ltd.", "Euro Shopping Channel", 
"Danish Wholesale Imports", "Salzburg Collectables", "Stylish Desk Decors, Co.", 
"Toys of Finland, Co.", "Scandinavian Gift Ideas", "Alpha Cognac", 
"Double Decker Gift Stores, Ltd", "Enaco Distributors", "Petit Auto", 
"giftsbymail.co.uk", "Baane Mini Imports", "Euro Shopping Channel", 
"Reims Collectables", "Oulu Toy Supplies, Inc.", "Lyon Souveniers", 
"Baane Mini Imports", "La Corne D'abondance, Co.", "Corrida Auto Replicas, Ltd", 
"Dragon Souveniers, Ltd.", "Mini Auto Werke", "Stylish Desk Decors, Co.", 
"Saveley & Henriot, Co.", "Handji Gifts& Co", "Handji Gifts& Co", 
"Souveniers And Things Co.", "Scandinavian Gift Ideas", "Volvo Model Replicas, Co", 
"Australian Collectors, Co.", "Anna's Decorations, Ltd", "Anna's Decorations, Ltd", 
"La Rochelle Gifts", "Cruz & Sons Co.", "Marseille Mini Autos", 
"Anna's Decorations, Ltd", "Herkku Gifts", "Toms Spezialitten, Ltd", 
"Euro Shopping Channel", "Auto Canal Petit", "Vida Sport, Ltd", 
"Danish Wholesale Imports", "UK Collectables, Ltd.", "L'ordine Souveniers", 
"Vida Sport, Ltd", "Blauer See Auto, Co.", "Toms Spezialitten, Ltd", 
"Volvo Model Replicas, Co", "Salzburg Collectables"), ORDERNUMBER = c(10121L, 
10134L, 10180L, 10188L, 10211L, 10223L, 10275L, 10299L, 10309L, 
10341L, 10361L, 10375L, 10403L, 10417L, 10103L, 10112L, 10126L, 
10150L, 10174L, 10194L, 10258L, 10270L, 10280L, 10291L, 10304L, 
10347L, 10391L, 10424L, 10120L, 10134L, 10180L, 10188L, 10210L, 
10223L, 10275L, 10298L, 10339L, 10361L, 10374L, 10402L, 10417L, 
10120L, 10134L, 10180L, 10188L, 10210L, 10223L, 10275L, 10299L, 
10339L, 10374L, 10403L, 10417L, 10105L, 10119L, 10129L, 10155L, 
10167L, 10178L, 10186L, 10197L, 10273L, 10316L, 10325L, 10350L, 
10359L, 10373L, 10395L, 10103L, 10114L, 10126L, 10150L, 10164L, 
10175L, 10194L, 10217L, 10259L, 10270L, 10291L, 10334L, 10347L, 
10370L, 10391L, 10425L, 10108L, 10122L, 10169L, 10181L, 10191L, 
10203L, 10211L, 10225L, 10238L, 10253L, 10266L, 10287L, 10300L, 
10310L, 10320L, 10341L)), na.action = structure(c(`1` = 1L, `4` = 4L, 
`5` = 5L, `6` = 6L, `9` = 9L, `12` = 12L, `13` = 13L, `14` = 14L, 
`16` = 16L, `19` = 19L, `20` = 20L, `24` = 24L, `30` = 30L, `32` = 32L, 
`34` = 34L, `36` = 36L, `37` = 37L, `38` = 38L, `39` = 39L, `45` = 45L, 
`46` = 46L, `47` = 47L, `49` = 49L, `50` = 50L, `51` = 51L, `53` = 53L, 
`55` = 55L, `58` = 58L, `59` = 59L, `60` = 60L, `63` = 63L, `66` = 66L, 
`67` = 67L, `68` = 68L, `70` = 70L, `72` = 72L, `73` = 73L, `74` = 74L, 
`78` = 78L, `81` = 81L, `84` = 84L, `85` = 85L, `86` = 86L, `89` = 89L, 
`92` = 92L, `93` = 93L, `94` = 94L, `96` = 96L, `98` = 98L, `99` = 99L, 
`100` = 100L, `102` = 102L, `104` = 104L, `110` = 110L, `116` = 116L, 
`117` = 117L, `118` = 118L, `119` = 119L, `121` = 121L, `122` = 122L, 
`123` = 123L, `126` = 126L, `130` = 130L, `132` = 132L, `133` = 133L, 
`137` = 137L, `141` = 141L, `143` = 143L, `145` = 145L, `146` = 146L, 
`149` = 149L, `151` = 151L, `152` = 152L, `153` = 153L, `156` = 156L, 
`158` = 158L, `160` = 160L, `164` = 164L, `165` = 165L, `166` = 166L, 
`176` = 176L, `181` = 181L, `189` = 189L, `190` = 190L, `194` = 194L, 
`195` = 195L, `200` = 200L, `201` = 201L, `209` = 209L, `210` = 210L, 
`212` = 212L, `214` = 214L, `216` = 216L, `220` = 220L, `222` = 222L, 
`224` = 224L, `225` = 225L, `228` = 228L, `231` = 231L, `232` = 232L, 
`233` = 233L, `235` = 235L, `237` = 237L, `239` = 239L, `241` = 241L, 
`244` = 244L, `245` = 245L, `248` = 248L, `249` = 249L, `252` = 252L, 
`253` = 253L, `254` = 254L, `255` = 255L, `256` = 256L, `259` = 259L, 
`260` = 260L, `262` = 262L, `264` = 264L, `269` = 269L, `270` = 270L, 
`274` = 274L, `275` = 275L, `280` = 280L, `281` = 281L, `285` = 285L, 
`290` = 290L, `291` = 291L, `294` = 294L, `295` = 295L, `296` = 296L, 
`306` = 306L, `311` = 311L, `314` = 314L, `319` = 319L, `320` = 320L, 
`324` = 324L, `325` = 325L, `330` = 330L, `331` = 331L, `337` = 337L, 
`340` = 340L, `341` = 341L, `342` = 342L, `345` = 345L, `346` = 346L, 
`347` = 347L, `357` = 357L, `362` = 362L, `369` = 369L, `370` = 370L, 
`376` = 376L, `377` = 377L, `378` = 378L, `379` = 379L, `382` = 382L, 
`383` = 383L, `384` = 384L, `385` = 385L, `387` = 387L, `389` = 389L, 
`391` = 391L, `392` = 392L, `397` = 397L, `398` = 398L, `399` = 399L, 
`402` = 402L, `413` = 413L, `414` = 414L, `422` = 422L, `424` = 424L, 
`428` = 428L, `430` = 430L, `431` = 431L, `432` = 432L, `433` = 433L, 
`439` = 439L, `440` = 440L, `441` = 441L, `443` = 443L, `445` = 445L, 
`447` = 447L, `449` = 449L, `454` = 454L, `456` = 456L, `457` = 457L, 
`463` = 463L, `467` = 467L, `468` = 468L, `471` = 471L, `473` = 473L, 
`476` = 476L, `477` = 477L, `480` = 480L, `481` = 481L, `483` = 483L, 
`486` = 486L, `493` = 493L, `494` = 494L, `496` = 496L, `498` = 498L, 
`501` = 501L, `502` = 502L, `503` = 503L, `506` = 506L, `507` = 507L, 
`509` = 509L, `512` = 512L, `519` = 519L, `520` = 520L, `524` = 524L, 
`525` = 525L, `527` = 527L, `533` = 533L, `535` = 535L, `536` = 536L, 
`538` = 538L, `542` = 542L, `546` = 546L, `547` = 547L, `549` = 549L, 
`551` = 551L, `555` = 555L, `556` = 556L, `563` = 563L, `564` = 564L, 
`566` = 566L, `569` = 569L, `577` = 577L, `579` = 579L, `581` = 581L, 
`582` = 582L, `583` = 583L, `585` = 585L, `587` = 587L, `594` = 594L, 
`595` = 595L, `597` = 597L, `599` = 599L, `603` = 603L, `604` = 604L, 
`605` = 605L, `608` = 608L, `615` = 615L, `619` = 619L, `620` = 620L, 
`627` = 627L, `632` = 632L, `634` = 634L, `635` = 635L, `637` = 637L, 
`641` = 641L, `645` = 645L, `646` = 646L, `651` = 651L, `655` = 655L, 
`656` = 656L, `662` = 662L, `663` = 663L, `664` = 664L, `668` = 668L, 
`669` = 669L, `670` = 670L, `671` = 671L, `673` = 673L, `675` = 675L, 
`677` = 677L, `678` = 678L, `681` = 681L, `683` = 683L, `684` = 684L, 
`685` = 685L, `687` = 687L, `689` = 689L, `696` = 696L, `699` = 699L, 
`701` = 701L, `705` = 705L, `711` = 711L, `712` = 712L, `713` = 713L, 
`716` = 716L, `717` = 717L, `718` = 718L, `719` = 719L, `720` = 720L, 
`721` = 721L, `723` = 723L, `731` = 731L, `732` = 732L, `733` = 733L, 
`735` = 735L, `737` = 737L, `740` = 740L, `744` = 744L, `745` = 745L, 
`749` = 749L, `751` = 751L, `757` = 757L, `763` = 763L, `765` = 765L, 
`768` = 768L, `769` = 769L, `771` = 771L, `772` = 772L, `773` = 773L, 
`776` = 776L, `778` = 778L, `785` = 785L, `786` = 786L, `789` = 789L, 
`790` = 790L, `791` = 791L, `795` = 795L, `796` = 796L, `799` = 799L, 
`803` = 803L, `805` = 805L, `808` = 808L, `809` = 809L, `810` = 810L, 
`813` = 813L, `816` = 816L, `817` = 817L, `818` = 818L, `820` = 820L, 
`822` = 822L, `823` = 823L, `824` = 824L, `826` = 826L, `835` = 835L, 
`836` = 836L, `838` = 838L, `848` = 848L, `849` = 849L, `853` = 853L, 
`855` = 855L, `856` = 856L, `857` = 857L, `862` = 862L, `864` = 864L, 
`865` = 865L, `867` = 867L, `871` = 871L, `875` = 875L, `876` = 876L, 
`880` = 880L, `887` = 887L, `889` = 889L, `891` = 891L, `892` = 892L, 
`893` = 893L, `895` = 895L, `900` = 900L, `901` = 901L, `902` = 902L, 
`904` = 904L, `905` = 905L, `906` = 906L, `910` = 910L, `914` = 914L, 
`916` = 916L, `918` = 918L, `919` = 919L, `920` = 920L, `922` = 922L, 
`927` = 927L, `928` = 928L, `931` = 931L, `932` = 932L, `933` = 933L, 
`938` = 938L, `939` = 939L, `945` = 945L, `946` = 946L, `947` = 947L, 
`950` = 950L, `952` = 952L, `960` = 960L, `961` = 961L, `963` = 963L, 
`967` = 967L, `969` = 969L, `971` = 971L, `972` = 972L, `973` = 973L, 
`975` = 975L, `980` = 980L, `981` = 981L, `984` = 984L, `985` = 985L, 
`986` = 986L, `992` = 992L, `994` = 994L, `996` = 996L, `997` = 997L, 
`1001` = 1001L, `1003` = 1003L, `1012` = 1012L, `1013` = 1013L, 
`1015` = 1015L, `1018` = 1018L, `1023` = 1023L, `1025` = 1025L, 
`1029` = 1029L, `1030` = 1030L, `1032` = 1032L, `1035` = 1035L, 
`1041` = 1041L, `1042` = 1042L, `1043` = 1043L, `1045` = 1045L, 
`1047` = 1047L, `1049` = 1049L, `1050` = 1050L, `1051` = 1051L, 
`1052` = 1052L, `1055` = 1055L, `1069` = 1069L, `1073` = 1073L, 
`1074` = 1074L, `1078` = 1078L, `1080` = 1080L, `1089` = 1089L, 
`1090` = 1090L, `1093` = 1093L, `1094` = 1094L, `1095` = 1095L, 
`1105` = 1105L, `1109` = 1109L, `1110` = 1110L, `1114` = 1114L, 
`1116` = 1116L, `1119` = 1119L, `1120` = 1120L, `1122` = 1122L, 
`1124` = 1124L, `1125` = 1125L, `1128` = 1128L, `1130` = 1130L, 
`1132` = 1132L, `1134` = 1134L, `1136` = 1136L, `1137` = 1137L, 
`1138` = 1138L, `1143` = 1143L, `1144` = 1144L, `1145` = 1145L, 
`1155` = 1155L, `1165` = 1165L, `1166` = 1166L, `1171` = 1171L, 
`1173` = 1173L, `1174` = 1174L, `1176` = 1176L, `1180` = 1180L, 
`1184` = 1184L, `1185` = 1185L, `1187` = 1187L, `1193` = 1193L, 
`1194` = 1194L, `1195` = 1195L, `1201` = 1201L, `1203` = 1203L, 
`1204` = 1204L, `1208` = 1208L, `1214` = 1214L, `1218` = 1218L, 
`1219` = 1219L, `1225` = 1225L, `1226` = 1226L, `1227` = 1227L, 
`1230` = 1230L, `1232` = 1232L, `1240` = 1240L, `1244` = 1244L, 
`1245` = 1245L, `1249` = 1249L, `1250` = 1250L, `1251` = 1251L, 
`1255` = 1255L, `1256` = 1256L, `1257` = 1257L, `1260` = 1260L, 
`1261` = 1261L, `1262` = 1262L, `1267` = 1267L, `1268` = 1268L, 
`1270` = 1270L, `1272` = 1272L, `1274` = 1274L, `1276` = 1276L, 
`1286` = 1286L, `1288` = 1288L, `1293` = 1293L, `1295` = 1295L, 
`1297` = 1297L, `1302` = 1302L, `1303` = 1303L, `1305` = 1305L, 
`1310` = 1310L, `1314` = 1314L, `1315` = 1315L, `1319` = 1319L, 
`1323` = 1323L, `1325` = 1325L, `1327` = 1327L, `1328` = 1328L, 
`1331` = 1331L, `1333` = 1333L, `1334` = 1334L, `1338` = 1338L, 
`1340` = 1340L, `1341` = 1341L, `1344` = 1344L, `1346` = 1346L, 
`1350` = 1350L, `1352` = 1352L, `1353` = 1353L, `1354` = 1354L, 
`1355` = 1355L, `1358` = 1358L, `1361` = 1361L, `1362` = 1362L, 
`1363` = 1363L, `1367` = 1367L, `1368` = 1368L, `1372` = 1372L, 
`1373` = 1373L, `1374` = 1374L, `1382` = 1382L, `1383` = 1383L, 
`1387` = 1387L, `1393` = 1393L, `1395` = 1395L, `1399` = 1399L, 
`1401` = 1401L, `1405` = 1405L, `1412` = 1412L, `1414` = 1414L, 
`1417` = 1417L, `1420` = 1420L, `1421` = 1421L, `1422` = 1422L, 
`1423` = 1423L, `1425` = 1425L, `1427` = 1427L, `1432` = 1432L, 
`1435` = 1435L, `1437` = 1437L, `1440` = 1440L, `1441` = 1441L, 
`1447` = 1447L, `1448` = 1448L, `1453` = 1453L, `1454` = 1454L, 
`1455` = 1455L, `1456` = 1456L, `1458` = 1458L, `1460` = 1460L, 
`1462` = 1462L, `1467` = 1467L, `1470` = 1470L, `1471` = 1471L, 
`1472` = 1472L, `1475` = 1475L, `1478` = 1478L, `1479` = 1479L, 
`1480` = 1480L, `1482` = 1482L, `1485` = 1485L, `1486` = 1486L, 
`1488` = 1488L, `1498` = 1498L, `1500` = 1500L, `1501` = 1501L, 
`1503` = 1503L, `1506` = 1506L, `1510` = 1510L, `1513` = 1513L, 
`1515` = 1515L, `1520` = 1520L, `1521` = 1521L, `1524` = 1524L, 
`1525` = 1525L, `1530` = 1530L, `1534` = 1534L, `1538` = 1538L, 
`1542` = 1542L, `1543` = 1543L, `1544` = 1544L, `1546` = 1546L, 
`1551` = 1551L, `1555` = 1555L, `1556` = 1556L, `1560` = 1560L, 
`1565` = 1565L, `1568` = 1568L, `1570` = 1570L, `1573` = 1573L, 
`1576` = 1576L, `1577` = 1577L, `1578` = 1578L, `1580` = 1580L, 
`1582` = 1582L, `1583` = 1583L, `1584` = 1584L, `1594` = 1594L, 
`1598` = 1598L, `1603` = 1603L, `1604` = 1604L, `1606` = 1606L, 
`1611` = 1611L, `1614` = 1614L, `1615` = 1615L, `1616` = 1616L, 
`1619` = 1619L, `1620` = 1620L, `1621` = 1621L, `1623` = 1623L, 
`1633` = 1633L, `1634` = 1634L, `1638` = 1638L, `1641` = 1641L, 
`1645` = 1645L, `1651` = 1651L, `1653` = 1653L, `1656` = 1656L, 
`1657` = 1657L, `1659` = 1659L, `1660` = 1660L, `1661` = 1661L, 
`1665` = 1665L, `1666` = 1666L, `1671` = 1671L, `1672` = 1672L, 
`1673` = 1673L, `1679` = 1679L, `1681` = 1681L, `1682` = 1682L, 
`1683` = 1683L, `1686` = 1686L, `1692` = 1692L, `1695` = 1695L, 
`1698` = 1698L, `1699` = 1699L, `1700` = 1700L, `1701` = 1701L, 
`1705` = 1705L, `1710` = 1710L, `1712` = 1712L, `1713` = 1713L, 
`1715` = 1715L, `1719` = 1719L, `1725` = 1725L, `1726` = 1726L, 
`1727` = 1727L, `1728` = 1728L, `1731` = 1731L, `1732` = 1732L, 
`1733` = 1733L, `1734` = 1734L, `1736` = 1736L, `1737` = 1737L, 
`1738` = 1738L, `1740` = 1740L, `1747` = 1747L, `1748` = 1748L, 
`1754` = 1754L, `1755` = 1755L, `1756` = 1756L, `1758` = 1758L, 
`1761` = 1761L, `1769` = 1769L, `1772` = 1772L, `1776` = 1776L, 
`1777` = 1777L, `1778` = 1778L, `1782` = 1782L, `1788` = 1788L, 
`1789` = 1789L, `1791` = 1791L, `1793` = 1793L, `1795` = 1795L, 
`1796` = 1796L, `1797` = 1797L, `1798` = 1798L, `1800` = 1800L, 
`1807` = 1807L, `1811` = 1811L, `1812` = 1812L, `1815` = 1815L, 
`1817` = 1817L, `1823` = 1823L, `1824` = 1824L, `1827` = 1827L, 
`1830` = 1830L, `1831` = 1831L, `1832` = 1832L, `1833` = 1833L, 
`1835` = 1835L, `1836` = 1836L, `1843` = 1843L, `1844` = 1844L, 
`1845` = 1845L, `1847` = 1847L, `1850` = 1850L, `1851` = 1851L, 
`1852` = 1852L, `1853` = 1853L, `1857` = 1857L, `1862` = 1862L, 
`1864` = 1864L, `1865` = 1865L, `1867` = 1867L, `1871` = 1871L, 
`1872` = 1872L, `1873` = 1873L, `1883` = 1883L, `1888` = 1888L, 
`1893` = 1893L, `1897` = 1897L, `1898` = 1898L, `1904` = 1904L, 
`1905` = 1905L, `1906` = 1906L, `1908` = 1908L, `1911` = 1911L, 
`1920` = 1920L, `1923` = 1923L, `1926` = 1926L, `1927` = 1927L, 
`1928` = 1928L, `1929` = 1929L, `1931` = 1931L, `1933` = 1933L, 
`1938` = 1938L, `1940` = 1940L, `1941` = 1941L, `1943` = 1943L, 
`1948` = 1948L, `1954` = 1954L, `1955` = 1955L, `1956` = 1956L, 
`1959` = 1959L, `1961` = 1961L, `1967` = 1967L, `1968` = 1968L, 
`1969` = 1969L, `1970` = 1970L, `1973` = 1973L, `1974` = 1974L, 
`1975` = 1975L, `1978` = 1978L, `1985` = 1985L, `1989` = 1989L, 
`1990` = 1990L, `1995` = 1995L, `2000` = 2000L, `2001` = 2001L, 
`2003` = 2003L, `2007` = 2007L, `2008` = 2008L, `2009` = 2009L, 
`2014` = 2014L, `2023` = 2023L, `2025` = 2025L, `2027` = 2027L, 
`2028` = 2028L, `2029` = 2029L, `2031` = 2031L, `2033` = 2033L, 
`2036` = 2036L, `2040` = 2040L, `2042` = 2042L, `2043` = 2043L, 
`2048` = 2048L, `2049` = 2049L, `2055` = 2055L, `2056` = 2056L, 
`2060` = 2060L, `2061` = 2061L, `2062` = 2062L, `2063` = 2063L, 
`2067` = 2067L, `2069` = 2069L, `2074` = 2074L, `2077` = 2077L, 
`2078` = 2078L, `2080` = 2080L, `2082` = 2082L, `2083` = 2083L, 
`2084` = 2084L, `2086` = 2086L, `2089` = 2089L, `2091` = 2091L, 
`2092` = 2092L, `2093` = 2093L, `2096` = 2096L, `2097` = 2097L, 
`2102` = 2102L, `2103` = 2103L, `2106` = 2106L, `2107` = 2107L, 
`2108` = 2108L, `2112` = 2112L, `2113` = 2113L, `2116` = 2116L, 
`2121` = 2121L, `2125` = 2125L, `2126` = 2126L, `2127` = 2127L, 
`2135` = 2135L, `2136` = 2136L, `2140` = 2140L, `2141` = 2141L, 
`2146` = 2146L, `2150` = 2150L, `2156` = 2156L, `2158` = 2158L, 
`2159` = 2159L, `2162` = 2162L, `2164` = 2164L, `2165` = 2165L, 
`2166` = 2166L, `2167` = 2167L, `2170` = 2170L, `2171` = 2171L, 
`2172` = 2172L, `2174` = 2174L, `2177` = 2177L, `2178` = 2178L, 
`2182` = 2182L, `2183` = 2183L, `2184` = 2184L, `2186` = 2186L, 
`2188` = 2188L, `2189` = 2189L, `2190` = 2190L, `2192` = 2192L, 
`2196` = 2196L, `2200` = 2200L, `2201` = 2201L, `2202` = 2202L, 
`2208` = 2208L, `2210` = 2210L, `2211` = 2211L, `2212` = 2212L, 
`2215` = 2215L, `2216` = 2216L, `2221` = 2221L, `2225` = 2225L, 
`2231` = 2231L, `2232` = 2232L, `2233` = 2233L, `2234` = 2234L, 
`2237` = 2237L, `2238` = 2238L, `2239` = 2239L, `2240` = 2240L, 
`2241` = 2241L, `2243` = 2243L, `2244` = 2244L, `2246` = 2246L, 
`2253` = 2253L, `2254` = 2254L, `2259` = 2259L, `2260` = 2260L, 
`2264` = 2264L, `2265` = 2265L, `2266` = 2266L, `2273` = 2273L, 
`2276` = 2276L, `2278` = 2278L, `2280` = 2280L, `2284` = 2284L, 
`2286` = 2286L, `2288` = 2288L, `2289` = 2289L, `2292` = 2292L, 
`2295` = 2295L, `2296` = 2296L, `2297` = 2297L, `2301` = 2301L, 
`2302` = 2302L, `2308` = 2308L, `2311` = 2311L, `2312` = 2312L, 
`2317` = 2317L, `2321` = 2321L, `2324` = 2324L, `2326` = 2326L, 
`2330` = 2330L, `2331` = 2331L, `2332` = 2332L, `2338` = 2338L, 
`2340` = 2340L, `2341` = 2341L, `2342` = 2342L, `2345` = 2345L, 
`2346` = 2346L, `2349` = 2349L, `2351` = 2351L, `2356` = 2356L, 
`2358` = 2358L, `2359` = 2359L, `2362` = 2362L, `2363` = 2363L, 
`2368` = 2368L, `2372` = 2372L, `2375` = 2375L, `2377` = 2377L, 
`2380` = 2380L, `2381` = 2381L, `2387` = 2387L, `2388` = 2388L, 
`2393` = 2393L, `2394` = 2394L, `2395` = 2395L, `2396` = 2396L, 
`2402` = 2402L, `2409` = 2409L, `2410` = 2410L, `2414` = 2414L, 
`2415` = 2415L, `2420` = 2420L, `2421` = 2421L, `2422` = 2422L, 
`2426` = 2426L, `2432` = 2432L, `2435` = 2435L, `2436` = 2436L, 
`2437` = 2437L, `2443` = 2443L, `2445` = 2445L, `2446` = 2446L, 
`2447` = 2447L, `2450` = 2450L, `2451` = 2451L, `2454` = 2454L, 
`2456` = 2456L, `2461` = 2461L, `2465` = 2465L, `2468` = 2468L, 
`2469` = 2469L, `2470` = 2470L, `2471` = 2471L, `2473` = 2473L, 
`2474` = 2474L, `2481` = 2481L, `2482` = 2482L, `2483` = 2483L, 
`2487` = 2487L, `2489` = 2489L, `2490` = 2490L, `2493` = 2493L, 
`2494` = 2494L, `2499` = 2499L, `2503` = 2503L, `2506` = 2506L, 
`2508` = 2508L, `2513` = 2513L, `2515` = 2515L, `2517` = 2517L, 
`2518` = 2518L, `2522` = 2522L, `2524` = 2524L, `2529` = 2529L, 
`2532` = 2532L, `2534` = 2534L, `2537` = 2537L, `2538` = 2538L, 
`2544` = 2544L, `2545` = 2545L, `2546` = 2546L, `2548` = 2548L, 
`2549` = 2549L, `2551` = 2551L, `2555` = 2555L, `2560` = 2560L, 
`2564` = 2564L, `2565` = 2565L, `2567` = 2567L, `2571` = 2571L, 
`2572` = 2572L, `2573` = 2573L, `2578` = 2578L, `2582` = 2582L, 
`2587` = 2587L, `2592` = 2592L, `2593` = 2593L, `2596` = 2596L, 
`2599` = 2599L, `2600` = 2600L, `2601` = 2601L, `2602` = 2602L, 
`2604` = 2604L, `2605` = 2605L, `2614` = 2614L, `2618` = 2618L, 
`2622` = 2622L, `2624` = 2624L, `2626` = 2626L, `2627` = 2627L, 
`2630` = 2630L, `2633` = 2633L, `2634` = 2634L, `2638` = 2638L, 
`2639` = 2639L, `2640` = 2640L, `2645` = 2645L, `2646` = 2646L, 
`2650` = 2650L, `2651` = 2651L, `2652` = 2652L, `2654` = 2654L, 
`2656` = 2656L, `2657` = 2657L, `2660` = 2660L, `2663` = 2663L, 
`2665` = 2665L, `2669` = 2669L, `2671` = 2671L, `2672` = 2672L, 
`2675` = 2675L, `2676` = 2676L, `2681` = 2681L, `2685` = 2685L, 
`2690` = 2690L, `2695` = 2695L, `2699` = 2699L, `2702` = 2702L, 
`2704` = 2704L, `2705` = 2705L, `2707` = 2707L, `2708` = 2708L, 
`2712` = 2712L, `2717` = 2717L, `2721` = 2721L, `2725` = 2725L, 
`2728` = 2728L, `2730` = 2730L, `2731` = 2731L, `2733` = 2733L, 
`2734` = 2734L, `2738` = 2738L, `2743` = 2743L, `2746` = 2746L, 
`2747` = 2747L, `2749` = 2749L, `2753` = 2753L, `2754` = 2754L, 
`2755` = 2755L, `2760` = 2760L, `2764` = 2764L, `2769` = 2769L, 
`2773` = 2773L, `2774` = 2774L, `2780` = 2780L, `2781` = 2781L, 
`2782` = 2782L, `2784` = 2784L, `2785` = 2785L, `2787` = 2787L, 
`2789` = 2789L, `2791` = 2791L, `2796` = 2796L, `2801` = 2801L, 
`2805` = 2805L, `2808` = 2808L, `2810` = 2810L, `2811` = 2811L, 
`2813` = 2813L, `2818` = 2818L, `2823` = 2823L), class = "omit"), row.names = c(2L, 
3L, 7L, 8L, 10L, 11L, 15L, 17L, 18L, 21L, 22L, 23L, 25L, 26L, 
27L, 28L, 29L, 31L, 33L, 35L, 40L, 41L, 42L, 43L, 44L, 48L, 52L, 
54L, 56L, 57L, 61L, 62L, 64L, 65L, 69L, 71L, 75L, 76L, 77L, 79L, 
80L, 82L, 83L, 87L, 88L, 90L, 91L, 95L, 97L, 101L, 103L, 105L, 
106L, 107L, 108L, 109L, 111L, 112L, 113L, 114L, 115L, 120L, 124L, 
125L, 127L, 128L, 129L, 131L, 134L, 135L, 136L, 138L, 139L, 140L, 
142L, 144L, 147L, 148L, 150L, 154L, 155L, 157L, 159L, 161L, 162L, 
163L, 167L, 168L, 169L, 170L, 171L, 172L, 173L, 174L, 175L, 177L, 
178L, 179L, 180L, 182L), class = "data.frame")

Другие вопросы по теме