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

熱線電話:13121318867

登錄
首頁精彩閱讀R語言中的數(shù)組和列表
R語言中的數(shù)組和列表
2017-05-11
收藏

R語言中的數(shù)組和列表

R語言中的數(shù)組與其它語言數(shù)組類似,它是一種高維的數(shù)據(jù)結(jié)構(gòu)。維數(shù)過高運(yùn)算會很不方便,所以用的很少,這里介紹是本著不落下任何知識點(diǎn)的目的。萬一以后遇到了,雖然不方便,還是可以進(jìn)行運(yùn)算的。當(dāng)然了,矩陣是二維數(shù)組,是數(shù)組的一種特殊形式。R中的列表是一種特殊的數(shù)組,每個元素又可以是一個列表可以含有多個元素,里面可以包含各種數(shù)據(jù)類型,故功能非常強(qiáng)大。
    數(shù)組
數(shù)組有一個維數(shù)向量,可以定義數(shù)組的維數(shù),通過array()進(jìn)行創(chuàng)建數(shù)組如下:
> arr <- array(c(1:24),dim = c(2,3,4))
> dim(arr)
[1] 2 3 4
> arr
, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

, , 3

     [,1] [,2] [,3]
[1,]   13   15   17
[2,]   14   16   18

, , 4

     [,1] [,2] [,3]
[1,]   19   21   23
[2,]   20   22   24

> class(arr)
[1] "array"
以上創(chuàng)建語句,第一個參數(shù)表示用1:24作為數(shù)組的數(shù)據(jù),dim = c(2,3,4)表示數(shù)組維數(shù)為2x3x4。
我們也可以用下面這種方式定義數(shù)組:
> arr1 <- c(1:24)
> dim(arr1) <- c(2,3,4)
> arr1
, , 1

     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6

, , 2

     [,1] [,2] [,3]
[1,]    7    9   11
[2,]    8   10   12

, , 3

     [,1] [,2] [,3]
[1,]   13   15   17
[2,]   14   16   18

, , 4

     [,1] [,2] [,3]
[1,]   19   21   23
[2,]   20   22   24


> class(arr1)
[1] "array"

這種方式就是先指定向量c(1:24)為數(shù)組的數(shù)據(jù),再指定其維數(shù)為2x3x4,最后其類型仍然為"array"。
矩陣的取塊,其實與上節(jié)講的矩陣取值一樣。比如:
> arr[1,,]
     [,1] [,2] [,3] [,4]
[1,]    1    7   13   19
[2,]    3    9   15   21
[3,]    5   11   17   23

我們可以將數(shù)組轉(zhuǎn)化為矩陣,比如我們嘗試將arr這個數(shù)組轉(zhuǎn)化為矩陣:
a <- as.matrix(arr)
猜測一下,a會長什么樣?我們看一下,哈哈!
> a
      [,1]
 [1,]    1
 [2,]    2
 [3,]    3
 [4,]    4
 [5,]    5
 [6,]    6
 [7,]    7
 [8,]    8
 [9,]    9
[10,]   10
[11,]   11
[12,]   12
[13,]   13
[14,]   14
[15,]   15
[16,]   16
[17,]   17
[18,]   18
[19,]   19
[20,]   20
[21,]   21
[22,]   22
[23,]   23
[24,]   24

> dim(a)
[1] 24  1
竟然是一個24x1的矩陣,沒想到吧。
    列表
R中用list()創(chuàng)建列表,比如
> li <- list(c(1:3),c('a','b'),c(4:6))
> li
[[1]]
[1] 1 2 3

[[2]]
[1] "a" "b"

[[3]]
[1] 4 5 6
這個列表包含三個元素,分別是c(1:3),c('a','b'),c(4:6),而每個元素又是一個數(shù)據(jù)集合,我現(xiàn)在要取第一個元素的第三個元素(就是3)
> li[[1]][1]
[1] 1
取第一個元素,就是
> li[1]
[[1]]
[1] 1 2 3
列表的每個元素還是列表,同樣說明列表可以嵌套。具體定位到最里層元素就是相應(yīng)數(shù)據(jù)類型了:
> class(li[[1]][1])
[1] "integer"

> li[[2]][1]
[1] "a"

> class(li[[2]][1])
[1] "character"
我們可以給列表每個元素取一個名字
> names(li) <- c('a1','a2','a3')
> li
$a1
[1] 1 2 3

$a2
[1] "a" "b"

$a3
[1] 4 5 6
為什么取名字呢,這樣我們引用時可以直接利用美元符號“$”+名字‘a(chǎn)1’,’a2‘,‘a(chǎn)3’,而不需要寫[[1]]那么麻煩了。
> li$a1
[1] 1 2 3
> li$a2[1]
[1] "a"
其實,給列表起名字還有更方便之處,這才是最終目的:可以在綁定數(shù)據(jù)后,直接引用列表元素名即可。
綁定列表用attach()
> attach(li)
然后,就可以直接引用列表元素名了。
> a1
[1] 1 2 3
> a2[2]
[1] "b"
關(guān)于R語言中的數(shù)組和列表(主要是列表)用法很靈活多樣,在以后我們會有實戰(zhàn)應(yīng)用會用到。這次,大家把今天介紹的好好練習(xí)就好!

數(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(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(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ù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗證碼的宕機(jī) 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); }