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

熱線電話:13121318867

登錄
首頁精彩閱讀R語言之創(chuàng)建數(shù)據(jù)集
R語言之創(chuàng)建數(shù)據(jù)集
2018-03-16
收藏

R語言之創(chuàng)建數(shù)據(jù)集

數(shù)據(jù)集通常是由數(shù)據(jù)構(gòu)成的一個(gè)矩形數(shù)組,行表示觀測,列表示變量。

R中有許多用于存儲(chǔ)數(shù)據(jù)的結(jié)構(gòu),包括標(biāo)量、向量、數(shù)組、數(shù)據(jù)框和列表。
在R中,對象(object)是指可以賦值給變量的任何事物,包括常量、數(shù)據(jù)結(jié)構(gòu)、函數(shù)、甚至是圖形。因子(factor)是名義型變量或有序型變量,在R中被特殊地存儲(chǔ)和處理。

R中的數(shù)據(jù)結(jié)構(gòu):

1.1向量

     向量是用于存儲(chǔ)數(shù)值型、字符型或邏輯型數(shù)據(jù)的一維數(shù)組。創(chuàng)建向量使用函數(shù)c(),如下例所示:
     數(shù)值型向量:a<-c(1,2,5,3,6,-2,4)
     字符型向量:b<-c("one","two","three")
     邏輯型向量:c<-c(TRUE,TRUE,TRUE,FALSE,TRUE)
     注:單個(gè)向量中的數(shù)據(jù)必須擁有相同的類型或模式。
     標(biāo)量是只含一個(gè)元素的向量,例如f<-3、g<-"US"和h<-TRUE。它們用于保存常量。
     訪問向量中的元素,可在方括號(hào)中給定元素所處位置的數(shù)值,如:a[c(2,4)]用于訪問向量a中的第二個(gè)和第四個(gè)元        素。
1.2矩陣
     矩陣是一個(gè)二維數(shù)組,只是每個(gè)元素都擁有相同的模式(數(shù)值型、字符型或邏輯型),可以通過matrix創(chuàng)建矩陣
      一般使用格式為:
      mymatrix<-matrix(vector,nrow=number_of_rows,ncol=number_of_columns,byrow=logical_value,dimnames=list(
      char_vector_rownames,char_vector_colnames)) ,其中vector包含了矩陣的元素,nrow和ncol用以指定
      行和列的維數(shù),dimnames包含了可選的以字符型向量表示的行名和列名。選項(xiàng)byrow則表明矩陣應(yīng)當(dāng)按行
      填充(byrow=TRUE)還是按列填充(byrow=FALSE),默認(rèn)情況下按列填充。代碼演示如下:
[plain] view plain copy
    > cells<-c(1,23,56,485)  
    > rnames<-c("R1","R2")  
    > cnames<-c("c1","c2")  

[plain] view plain copy

    <pre name="code" class="html">> mymatrix<-matrix(cells ,nrow=2,ncol=2,byrow=TRUE,dimnames=list(rnames,cnames))  
    > mymatrix  
       c1  c2  
    R1  1  23  
    R2 56 485 
1.3數(shù)組
數(shù)組與矩陣類似,但是維數(shù)可以大于2。數(shù)組可通過array函數(shù)創(chuàng)建,形式如下:
myarray<-array(vector,dimensions,dimnames),其中vector包含了數(shù)組中的數(shù)據(jù),dimensions是一個(gè)數(shù)值型向量,給出了各個(gè)維度下標(biāo)的最大值,而dimnames是可選的、各維度名稱標(biāo)簽的列表。代碼如下:
[html] view plain copy

    > dim<-c("A1","A2")  
    > dim1<-c("A1","A2")  
    > dim2<-c("B1","B2","B3")  
    > dim3<-c("C1","C2","C3","C4")  
    > z<-array(1:24,c(2,3,4),dimnames=list(dim1,dim2,dim3))  
    > z  
    , , C1  
      
       B1 B2 B3  
    A1  1  3  5  
    A2  2  4  6  
      
    , , C2  
      
       B1 B2 B3  
    A1  7  9 11  
    A2  8 10 12  
      
    , , C3  
      
       B1 B2 B3  
    A1 13 15 17  
    A2 14 16 18  
      
    , , C4  
      
       B1 B2 B3  
    A1 19 21 23  
    A2 20 22 24 
1.4數(shù)據(jù)框
     數(shù)據(jù)框中不同的列可以包含不同模式(數(shù)值型、字符型等)的數(shù)據(jù),是R中最常處理的數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)框可以通過函數(shù)data.frame()創(chuàng)建:mydata<-data.frame(col1,col2,col3,...),其中的列向量col1,col2,col3,...可為任何類型(如字符型、數(shù)值型或邏輯型)。每一列的名稱可由函數(shù)names指定。代碼如下:
[html] view plain copy

    > age<-c(25,34,28,53)  
    > patientID<-c(1,2,3,4)  
    > diabetes<-c("Type1","Type2","Type1","Type1")  
    > status<-c("Poor","Improved","Excellent","Poor")  
    > patientdata<-data.frame(patientID,age,diabetes,status)  
    > patientdata  
      patientID age diabetes    status  
    1         1  25    Type1      Poor  
    2         2  34    Type2  Improved  
    3         3  28    Type1 Excellent  
    4         4  53    Type1      Poor  
    > patientdata$age  
    [1] 25 34 28 53  
    <pre name="code" class="html">> table(patientdata$diabetes,patientdata$status)  
             
            Excellent Improved Poor  
      Type1         1        0    2  
      Type2         0        1    0 
    $被用來選取一個(gè)給定數(shù)據(jù)框中的某個(gè)特定變量,上面table(patientdata$diabetes,patientdata$status)生成了       diabetes和status的列聯(lián)表。
    函數(shù)attach()可將數(shù)據(jù)框添加到R的搜索路徑中。
    函數(shù)detach()將數(shù)據(jù)框從搜素路徑中移除。
    相對于attach。多數(shù)的R書籍更推薦使用函數(shù)with()。
1.5因子
     變量可歸結(jié)為名義型、有序型或連續(xù)型變量。類別(名義型)變量和有序類別(有序型)變量在R中稱為因子。因子在R中非常重要,因?yàn)樗鼪Q定了數(shù)據(jù)的分析方式以及如何進(jìn)行視覺呈現(xiàn)。
     函數(shù)factor()以一個(gè)整數(shù)向量的形式存儲(chǔ)類別值,整數(shù)的取值范圍是[1...k](其中k是名義變量中唯一值得個(gè)數(shù)),同時(shí)一個(gè)由字符串(原始值)組成的內(nèi)部向量將映射到這些整數(shù)上。
名義型eg:假設(shè)有向量:diabetes<-c("Type1","Type2","Type1","Type1")
        語句diabetes<-factor(diabetes)將此向量存儲(chǔ)為(1,2,1,1).
有序型eg:   對于給定變量status<-c("Poor","Improved","Excellent","Poor")
        語句status<-factor(status,ordered=TRUE)會(huì)將向量編碼為(3,2,1,3)。
1.6列表(list)
     列表是R的數(shù)據(jù)類型中最為復(fù)雜的一種。列表就是一些對象的(或成分,component)的有序集合。列表允許你整合若干(可能無關(guān))的對象到單個(gè)對象名下。例如,某個(gè)列表中可能是若干向量、矩陣、數(shù)據(jù)框,甚至是其他列表的組合。可以使用函數(shù)list()創(chuàng)建列表:
      mylist<-list(object1,object2,...)
    注:列表成為了R中的重要數(shù)據(jù)結(jié)構(gòu)。
           1.列表允許以一種簡單的方式組織和重新調(diào)用不相干的信息;
           2.許多R函數(shù)的運(yùn)行結(jié)果都是以列表的形式返回的。

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

若不方便掃碼,搜微信號(hào):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)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(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){ //倒計(jì)時(shí)完成 $(".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); }