99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀R語言直接調(diào)用Java代碼
R語言直接調(diào)用Java代碼
2017-02-18
收藏

R語言直接調(diào)用Java代碼

我們都知道Java語言長期處于霸主地位,在所有編程語言排行榜中,Java也是常年位居第一。在近幾年也是爆炸式發(fā)展,幾乎覆蓋到了應(yīng)用開發(fā)的所有領(lǐng)域。而R語言則在統(tǒng)計圈和數(shù)據(jù)可視化處于佼佼者,如果將Java的通用性和R的專業(yè)性緊密結(jié)合起來,就可以碰撞出不一樣的火花。

在之前兩篇文章中我已經(jīng)寫了如何在Java程序中調(diào)用R代碼,

想必很多人都知道rjava包是一個R語言和Java語言的通信接口,通過底層JNI實現(xiàn)調(diào)用,允許R直接調(diào)用java對象的方法??山裉煳揖鸵粋€簡單的函數(shù)system()來實現(xiàn)在R語言直接調(diào)用Java程序。

下面這個Java程序是用來計算斐波拉契數(shù)列的,我已經(jīng)賦初值為5,

public class NoParameter {

    public void printFibo(int n){
        for(int i=1;i<=n;i++){
            System.out.println(f(i)+" ");
            if (i%10==0) {
                System.out.println();
            }
        }    
    }
    long f(long n){
        if (n==1||n==2) {
            return 1;
        } else {
            return f(n-1)+f(n-2);
        }
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new NoParameter().printFibo(5);
    }

}

(上下滑動可查看代碼)

運行結(jié)果如下:

R語言中,我們只需要用兩句話就可以調(diào)用這個程序:

system("javac NoParameter.java")#生成.class文件
system("java NoParameter")#執(zhí)行NoParameter文件

運行結(jié)果如下:

下面這個Java程序也是用來計算斐波拉契數(shù)列的,不過它需要在運行時寫入?yún)?shù),用來告訴程序你需要多少位的數(shù)列。

public class Parameter {

    public void printFibo(int n){
        for(int i=1;i<=n;i++){
            System.out.println(f(i)+" ");
            if (i%10==0) {

(上下滑動可查看代碼)

這個在R語言中也需要兩句話就可以運行:

system("javac Parameter.java")
system("java Parameter 6")

運行結(jié)果為

這里需要注意的就是Main函數(shù)參數(shù)String[] args,它是一個字符串數(shù)組,用來接收從命令行輸入的參數(shù)。參數(shù)之間用空格隔開,java解釋器會自動處理,把用空格隔開的每一個參數(shù)通過args數(shù)組傳遞給main方法。參數(shù)下標從0開始,args[0]就代表1第一個參數(shù)。當然輸入?yún)?shù)之間可以有多個空格,中間的多個空格會被忽略掉。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }