Grzebania w szufladzie ciąg dalszy - NIP

Funkcja sprawdza poprawność numeru NIP - operuje na wektrorach:

function(nip){
 wynik <- logical(length(nip))
 for (p in 1:length(nip)){
  NIP <- nip[p]
  wagi <- "657234567"
  suma =0
  if (nchar(NIP) == 10){
   for (i in 1:9){
    suma + as.numeric(substr(NIP,i,i))*as.numeric(substr(wagi,i,i)) -> suma
   }
  sk <- (suma %% 11)
  if(sk == as.numeric(substr(NIP,10,10))){
    wynik[p] <- TRUE
  }else{wynik[p]<-FALSE}
 }else{wynik[p]<-FALSE}
 }
 return(wynik)
 }

Created by Pretty R at inside-R.org

admin niedziela, 11 grudzień 2011 - 12:46 am | | Blog-R