R語言 例項 車輛車架號VIN碼校驗函式

2021-08-21 12:38:17 字數 880 閱讀 8723

車輛識別號碼(vehicle identification number,簡稱vin碼,亦稱車架號),是車輛唯一id標識,也是保險公司用於外部資料合作的主要匹配字段。

vin碼由17位字元(23個大寫英文本母+數字,為避免混淆剔除了i、o、q三個英文本母)組成,3位wmi+5位vds+1位校驗碼+8位vis,詳情參考 17位車架號詳解 。校驗方法參考 車輛vin碼的校驗演算法 。

無論是內部管理還是對外合作,vin碼都是主要匹配字段。不過資料庫裡個別值的錄入錯誤也是難免的,為了確保匹配的準確性,在外捍衛我大甲方的榮譽,清洗校驗的過程還是必要的。(當然最簡單的辦法還是在錄入時加乙個自動核驗)

#require(magrittr)

p.vin_check

function(vin))

}

其實校驗的邏輯並不複雜,網上**隨便搜,無非就是對映,迴圈,最後加個判斷。然而半吊子程式設計師是矯情的,對簡潔是有追求的,因此也就有了這一行**(寫成多行是排版需要)。

首先,這種演算法在r中完全不需要通過對映加迴圈來實現,陣列就能搞定。

因此用

c(letters,0:9) #字元

c(1:8,na,1:5,na,7,na,9,2:9,0:9) #對應值

指示字元與值的對應關係。(為了保證安全,三個不存在的字母置na)

用strsplit打散vin碼字串,再通過charmatch和sum就已經求得了加總值。

隨後取餘的判斷涉及10與x的對應,不得已用了管道操作加乙個ifelse。

這是我目前能想到的最精簡的思路了,還請大神指教。

正態分佈R語言例項

開機時顯示的時間排名是如何設計的呢?下面以此為例一起學下r語言與正態分佈。首先,你可能會覺得它是這樣子實現的 1 收集所有使用者的開機時間的資料,排好序放在乙個資料庫中 2 然後根據你的開機時間,找出你的排名,除以總使用者數,就是你擊敗電腦佔比。data mean data 1 sd data 1 ...

R語言實戰MDS

原理戳這裡 超愛學習 機器學習演算法 mds降維演算法 zhuanlan.zhihu.com 1度量mds 衡量距離用歐式距離,對鳶尾花資料進行降維 圖1使用歐式距離對鳶尾花資料進行mds降維 2度量mds 衡量距離使用曼哈頓距離,對鳶尾花資料降維 library stats library ggp...

《R語言實戰》閱讀筆記(一) R語言介紹

資料分析科學 統計學 計量心理學 計量經濟學 機器學習 的發展一直與資料的 式增長保持同步。典型的資料分析步驟 r是一種區分大小寫的解釋型語言。一次互動會話期間的所有資料物件都被儲存在記憶體中,一些基本函式是預設直接可用的,而其他高階函式則包含於按需載入的程式包中。r語句由函式和賦值構成。r使用來進...