[R-br] Validando o CPF

Éder Comunello comunello.eder em gmail.com
Quarta Janeiro 27 14:45:00 BRST 2016


Wagner, boa tarde!

Você pode adaptar de outras linguagens. No link que segue está bem fácil de
entender:
<http://www.devmedia.com.br/validando-o-cpf-em-uma-aplicacao-java/22097>

Fiz um primeiro exercício, mas não posso garantir que esteja plenamente
funcional. Sugiro apenas como ponto de partida. Quem quiser melhorar o
código é bem-vindo.

### <code r>
isCPF <- function(cpf.str) {
     cpf <- gsub('[^[:digit:]]+', '', cpf.str)

     ### primeiro dígito verificador:
     cpf.1 <- as.numeric(strsplit(substr(cpf, 1,9), "")[[1]])
     sm.1  <- sum(cpf.1 * 10:2) ### 249
     dig.1 <- ifelse((sm.1 %% 11)==0 | (sm.1 %% 11)>9, 0, 11-(sm.1 %% 11))
### 4
     ### se o resto da divisão for 10 ou 11, o dígito será 0;

     ### segundo dígito verificador:
     cpf.2 <- as.numeric(strsplit(substr(cpf, 1,10), "")[[1]])
     sm.2  <- sum(cpf.2 * 11:2) ### 299
     dig.2 <- ifelse((sm.2 %% 11)==0 | (sm.2 %% 11)>9, 0, 11-(sm.2 %% 11))
### 9

     ### testa dígitos calculados
     ver <- paste0(dig.1, dig.2) == substr(cpf, 10,11)
     return(ver); print(ver)
}

isCPF("546.471.429-49") ### TRUE
isCPF("546.471.429-99") ### FALSE
### </code>

​
================================================
Éder Comunello
PhD Student in Agricultural Systems Engineering (USP/Esalq)
Brazilian Agricultural Research Corporation (Embrapa)
Dourados, MS, Brazil [22 16.5'S, 54 49.0'W]




Em 27 de janeiro de 2016 12:12, Wagner Tassinari <wtassinari em gmail.com>
escreveu:

> Olá pessoal,
>
> Alguém conhece algum código em R para verificar a consistência do número
> do CPF ?
>
> Obrigado
>
> --
> Wagner S. Tassinari
> Departamento de Matemática
> Universidade Federal Rural do Rio de Janeiro.
> BR-465, Km 7 - Seropedica, RJ - Brasil
> CEP: 23890-000
> Skype: wagner.tassinari
> wtassinari em gmail.com
> tassinari em ufrrj.br
> -------------------------------------------------------
> "Statistical thinking will one day be as necessary for efficient
> citizenship as the ability to read and write."  (H.G.Wellis)
>
> _______________________________________________
> R-br mailing list
> R-br em listas.c3sl.ufpr.br
> https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br
> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça
> código mínimo reproduzível.
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160127/3b7f949e/attachment.html>


Mais detalhes sobre a lista de discussão R-br