使用R建立多個有重複字元的系列變數

2021-08-14 17:12:25 字數 1731 閱讀 4017

最近一段時間需要對公司投資人群多個時間點是否流失進行**,需要針對未來20天該使用者群是否流失進行**,於是需要至少建立20個資料集,做20個模型,進行20個**,這要我重複寫20遍**,這種重複敲**的感覺可不好(關鍵是乙個模型可不是十行**能解決問題的,有n多引數),好歹我自詡為人工智慧人才,怎麼能被重複性的**難倒呢?

首先我需要重複編寫的**如下:

qbtrain1=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,33])

qbtrain2=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,34])

qbtrain3=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,35])

qbtrain4=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,36])

qbtrain5=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,37])

qbtrain6=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,38])

qbtrain7=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,39])

qbtrain8=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,40])

qbtrain9=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,41])

qbtrain10=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,42])

qbtrain11=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,43])

qbtrain12=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,44])

qbtrain13=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,45])

qbtrain14=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,46])

qbtrain15=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,47])

qbtrain16=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,48])

qbtrain17=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,49])

qbtrain18=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,50])

qbtrain19=xgb.dmatrix(data=qbls1[,2:32],label=qbls1[,51])

首先大家需要先看看哪些**是不變的,哪些是變化的,剛開始我打算用paste函式來解決這個問題,但是paste之後的字元不能成為表示式,後來我使用了如下**解決了這個問題。

for (i in 1:19)

首先使用了乙個迴圈語句,然後用sprintf函式將格式化字串輸出到變數中(函式中兩個s%分別用後面兩個i來替換),再然後用parse函式將字串轉化為表示式,最後是用eval函式執行表示式,最終就能使用迴圈語句將每乙個變數迴圈執行出來。

當變數或者表示式相同字元較多的時候,均可以使用這種方法使自己的敲**速度大大加快喲,大家趕緊來學學吧!

參考:

Python判斷多個列表中是否有重複的元素

直接使用將列表相加求出長度,然後再與去除重複元素的列表長度進行比較即可。lst list1 list2 list3 listlen len lst 所有列表長度 onlylen len set lst 沒有重複元素列表長度 print result listlen,onlylen 如果想找出相同的元...

使用R語言篩選資料中的重複行

在進行資料的預處理時,我們常常關注有無重複資料,如果兩行資料完全一致,則可能存在資料的重複錄入等情況,此時就要對這兩行資料進行核實。但這個過程如何用r語言實現?筆者近期對這個問題進行了探索。我們首先虛擬乙個資料,並將這個資料儲存為csv檔案,命名為 a.csv 資料如下圖 我們首先讀入資料,並檢視資...

leetcode系列3 無重複字元的最長子串

題目描述 給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。example 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。題目主要考察點是判斷是否重複,並且在無重複的範圍內找到最長的子串 var lengthoflongestsubstri...