Как использовать R для создания нового дифрейма из доли информации, найденной в другом? - PullRequest
0 голосов
/ 18 февраля 2020

В R и с tidyverse у меня есть фрейм данных под названием «total» со ​​следующими столбцами:

«IdPedido», «ProtocoloPedido», «OrgaoSuperiorAssociadoaoDestinatario», «OrgaoDestinatario», «situacao», «DataRegistro» «ResumoSolicitacao», «DetalhamentoSolicitacao», «PrazoAtendimento», «FoiProrrogado», «FoiReencaminhado», «FormaResposta», «OrigemSolicitacao», «IdSolicitante», «ResoriaPedido» RestaiaPedidoRasedo «PedidoRas» "," TipoResposta "," ClassificacaoTipoResposta "и" IdPedido_ano "

Вот краткое содержание:

dput(total[1:2, ])
structure(list(IdPedido = c("345365", "345366"), ProtocoloPedido = c("99901000001201633", 
"99902000001201623"), OrgaoSuperiorAssociadoaoDestinatario = c(NA, 
NA), OrgaoDestinatario = c("BB – Banco do Brasil S.A.", "CEF – Caixa Econômica Federal"
), Situacao = c("Respondido", "Respondido"), DataRegistro = structure(c(1451640253, 
1451648416), class = c("POSIXct", "POSIXt"), tzone = "UTC"), 
    ResumoSolicitacao = c("consultar meu cpf . no spc e serasa", 
    "Esclarecimentos sobre seguro de risco de incêndio"), DetalhamentoSolicitacao = c("Consulta do cpf no serasa e spc", 
    "Sou conselheiro de um Condomínio e depois da publicação da NORMA ABNT 16.280 que começou a valer a partir de 18/04/2014 tenho as seguintes dúvidas com relação a instalação de ares condicionados nas unidades condominiais.  Pergunto: quem colocou os ares condicionados antes da publicação da Norma da ABNT esses condôminos têm que apresentar ao síndico a ART da instalação ou não? A Lei retroage nestes casos?  Recentemente um condômino contratou um engenheiro civil para fazer algumas obras no seu apto e instalou os ares condicionados e o engenheiro forneceu a ART.Pergunto: Pode um engenheiro civil dar ART para instalação de ar condicionado? Não é atribuição específica de um engenheiro eletricista?  Se houver um incêndio em sua unidade o seguro pode exigir a ART de um engenheiro eletricista ou não? Vai ter problemas com o seguro caso haja um incêndio nesta unidade habitacional?  Cito como exemplo vários incêndios que ocorreram no passado (Edifício Joelma ) cuja causa foi por causa da instalação elétrica e pegou fogo nos ares condicionados, alguns aptos em Copacabana também.  Fico no aguardo dos esclarecimentos necessários acerca das exigências e implicações das Seguradoras em caso de ocorrer um incêndio em nosso Condomínio por causa da instalação de ares condicionados.  Atenciosamente,  Luciano Miniero"
    ), PrazoAtendimento = structure(c(1453766399, 1453766399), class = c("POSIXct", 
    "POSIXt"), tzone = "UTC"), FoiProrrogado = c("NÃO", "NÃO"
    ), FoiReencaminhado = c("NÃO", "NÃO"), FormaResposta = c("Pelo sistema (com avisos por email)", 
    "Pelo sistema (com avisos por email)"), OrigemSolicitacao = c("Internet", 
    "Internet"), IdSolicitante = c("604629", "537117"), CategoriaPedido = c("Economia e Finanças", 
    "Economia e Finanças"), SubCategoriaPedido = c("Economia", 
    "Economia"), NumeroPerguntas = c("1", "1"), DataResposta = structure(c(1453721439, 
    1452011569), class = c("POSIXct", "POSIXt"), tzone = "UTC"), 
    Resposta = c("Prezado(a) Sr(a). Gisela,  Encaminhamos, em anexo, resposta ao seu pedido de informação.  Atenciosamente,  Serviço de Informação ao Cidadão do Banco do Brasil – SICBB  Recurso  Conforme a Lei 12527/11 em seu artigo Art. 15, no caso de indeferimento de acesso a informações ou às razões da negativa do acesso, poderá o interessado interpor recurso contra a decisão no prazo de 10 (dez) dias a contar da sua ciência.  Parágrafo único. O recurso será dirigido à autoridade hierarquicamente superior à que exarou a decisão impugnada, que deverá se manifestar no prazo de 5 (cinco) dias.", 
    "Prezado (a) Senhor (a),     1. Em atenção a sua solicitação, registrada através do E-SIC, site CGU, informamos que não foi possível compreender o seu pedido.     2. Caso seja pertinente à CAIXA, orientamos gerar novo pedido detalhando a sua solicitação.     3. Informamos que a CAIXA mantém SAC para informações, reclamações, cancelamentos, sugestões, serviços e elogios, com atendimento 24 horas por dia 07 dias por semana, pelo DDG 0800 726 0101 e para reclamações não solucionadas no SAC ou denúncias, a CAIXA mantém canal de Ouvidoria com atendimento de segunda a sexta-feira, das 08 às 18 horas, pelo DDG 0800 725 7474.    4. A CAIXA coloca-se à disposição através de seus canais de atendimento.       Atenciosamente,    CAIXA – Serviço de Informações ao Cidadão"
    ), TipoResposta = c("Acesso Concedido", "Acesso Negado"), 
    ClassificacaoTipoResposta = c("Resposta solicitada inserida no e-SIC", 
    "Pedido incompreensível"), IdPedido_ano = c("345365_2016", 
    "345366_2016")), row.names = c(NA, -2L), class = c("tbl_df", 
"tbl", "data.frame"))

Это кадр данных по запросам на доступ к информации в Бразилии. В столбце «OrgaoDestinatario» указаны названия учреждений, которые получили запросы. И в столбце «ТипоРеспоста», который был типом ответа на запрос

, я сосчитал два столбца

total %>%  count(OrgaoDestinatario, sort = TRUE)
A tibble: 295 x 2
   OrgaoDestinatario                                              n
   <chr>                                                      <int>
 1 ME - Ministério da Economia                                21000
 2 CEF – Caixa Econômica Federal                               7212
 3 MS – Ministério da Saúde                                    6913
 4 ANEEL – Agência Nacional de Energia Elétrica                6596
 5 INSS – Instituto Nacional do Seguro Social                  5674
 6 BACEN – Banco Central do Brasil                             4281
 7 MAPA – Ministério da Agricultura, Pecuária e Abastecimento  3978
 8 MEC – Ministério da Educação                                3632
 9 ANVISA – Agência Nacional de Vigilância Sanitária           3494
10 MDR - Ministério do Desenvolvimento Regional                3167
# … with 285 more rows

total %>%  count(TipoResposta, sort = TRUE)
 A tibble: 21 x 2
   TipoResposta                                                  n
   <chr>                                                     <int>
 1 Acesso Concedido                                         129330
 2 Não se trata de solicitação de informação                 12128
 3 Acesso Negado                                             10241
 4 Acesso Parcialmente Concedido                              8832
 5 Órgão não tem competência para responder sobre o assunto   6523
 6 Informação Inexistente                                     5600
 7 Pergunta Duplicada/Repetida                                3786
 8 Encaminhado para o e-Ouv                                    660
 9 Resposta solicitada inserida no e-SIC                        15
10 Informações enviadas por e-mail                              13
# … with 11 more rows

, а также подсчитывает внутри «ТипоРеспоста» объекта. Пример:

ECO <- total %>%
  filter(OrgaoDestinatario == "ME - Ministério da Economia")

ECO %>%  count(TipoResposta, sort = TRUE)
# A tibble: 9 x 2
  TipoResposta                                                 n
  <chr>                                                    <int>
1 Acesso Concedido                                         12120
2 Não se trata de solicitação de informação                 4679
3 Acesso Negado                                             1824
4 Órgão não tem competência para responder sobre o assunto   707
5 Informação Inexistente                                     560
6 Acesso Parcialmente Concedido                              530
7 Pergunta Duplicada/Repetida                                485
8 Encaminhado para o e-Ouv                                    94
9 NA                                                           1

Я хочу создать новый фрейм данных, в котором есть столбец с именем «list_of_entities», и каждая строка содержит информацию «OrgaoDestinatario», не повторяя ее (в данном случае 295 строк). Пример:

list_of_entities
ME - Ministério da Economia
CEF – Caixa Econômica Federal
MS – Ministério da Saúde
ANEEL – Agência Nacional de Energia Elétrica
INSS – Instituto Nacional do Seguro Social
BACEN – Banco Central do Brasil
MAPA – Ministério da Agricultura, Pecuária e Abastecimento
…

И другие столбцы с именами, найденными в «ТипоРеспоста»: «Aceso Concedido», «Não se trata de solicitação de informação», «Acesso Negado»…

Но строки в каждом из этих столбцов будут иметь результат математического счета, число, относительно значения «list_of_entities»: сумма категории «TipoResposta» соответствующего объекта, деленная на общее количество запросов этого объекта, умноженное на 100 Пример:

У «ME - Ministério da Economia» было 21 000 запросов, а по пункту «Acesso Concedido» - 12 120 случаев. Таким образом, это 12 120/21 000 * 100 = 57,71. Таким образом, в новом кадре данных в строке «ME - Ministério da Economia» и в столбце «Acesso Concedido» будет значение 57,71

Продолжая, в элементе « Não se trata de solicitação de informação »было 4679, поэтому счет будет 4679 / 21,000 * 100 = 22,28 Затем в новом фрейме данных в строке« ME - Ministério da Economia »и в столбце« Não se trata de solicitação » de informação »значение будет 22,28 И так далее, во всех столбцах, а затем во всех других объектах и ​​их столбцах

Пожалуйста, кто-нибудь знает, как я мог бы сделать это с R?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...