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

熱線電話:13121318867

登錄
首頁精彩閱讀R語言之?dāng)?shù)據(jù)處理_數(shù)據(jù)分析師
R語言之?dāng)?shù)據(jù)處理_數(shù)據(jù)分析師
2017-03-13
收藏

R語言之?dāng)?shù)據(jù)處理

一、向量處理


1.選擇和顯示向量
data[1]
data[3]
data[1:3]
data[-1]:除第一項以外的所有項
data[c(1,3,4,6)]
data[data>3]
data[data<5|data>7]:小于5或大于7的所有項
which(data == max(data)):顯示數(shù)值最大的那個項序號
data[seq(1,length(data),2)]:每隔一段取出特定值,1為從第一項開始,length(data)表示到向量的最后一項結(jié)束,2表示間隔兩項

2.向量的排序

sort()函數(shù)可以為向量排序,默認(rèn)為升序,選項na.last默認(rèn)為去掉NA項,TRUE為包含NA并放置最后,F(xiàn)ALSE為包含NA并放置最前面,對于重復(fù)數(shù)值,sort采取的是并列排序的方式
sort(data,na.last = NA)
sort(data,na.last = TRUE)
sort(data,na.last = FALSE)


order()函數(shù),獲得向量的排序號,選項na.last默認(rèn)為TRUE包含NA并將其放置最后,NA為不包含NA項,F(xiàn)ALSE為包含NA并放置最前面
oder(data,na.last = NA)
order(data,na.last = TRUE)
order(data,na.last = FALSE)


rank()函數(shù),也是向量排序函數(shù),和sort()不同,對于重復(fù)數(shù)值,rank不會并列,而且采用其他方式,默認(rèn)為采取去平均數(shù)。選項ties.method為處理重復(fù)數(shù)值的方式,na.last為處理NA值的方式,keep為保留NA值
rank(data,ties.method=average,na.last="keep")

3.向量返回邏輯值

直接使用向量進行等號判斷即可,如
> data == 100
[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE


二、矩陣和數(shù)據(jù)框處理

1.選擇和顯示矩陣或數(shù)據(jù)框

和向量一樣,選擇矩陣和數(shù)據(jù)框也可以使用[],但是需要指定行和列,通用格式為
object[row,column]

data[3,3]:選擇第三行第三列的數(shù)據(jù)
data[3,1:4]:選擇第三行和1-4列的數(shù)據(jù)
data[1:2,1:3]:選擇第1-2行、第1-3列的數(shù)據(jù)
data[,1]:選擇第一列的全部數(shù)據(jù),以向量形式返回
data[1,]:選擇第一行全部數(shù)據(jù)
data[1]:對于數(shù)據(jù)框,顯示第一列的數(shù)據(jù),以列表形式返回,對于矩陣,將視為索引號,顯示索引號對應(yīng)的值。
data[c(1,3,5,7),]
data[c(1,3,5,7).-4]:選擇1,3,5,7行、除第四列以外的所有值。
data[c(1,3,5,7),"列名"],選項1,3,5,7行,和某列的值

索引號:矩陣的索引方式是從第一列第一行開始,依次讀取每一列,可用test.matrix

2.矩陣和數(shù)據(jù)框的排序

和向量一樣,也使用sort、order、rank函數(shù)進行排序,但是sort可用對整個矩陣排序,但是不能對整個數(shù)據(jù)框排序,應(yīng)用數(shù)據(jù)框的時候,應(yīng)選擇其中一部分進行。

三、列表的處理

列表經(jīng)常存放不同結(jié)構(gòu)的數(shù)據(jù),因此在處理列表數(shù)據(jù)前,應(yīng)先查看一下列表內(nèi)容的數(shù)據(jù)結(jié)構(gòu),使用str函數(shù)進行查看


1.選擇和顯示列表數(shù)據(jù)

data[1]:選擇列表中的第1個元素

2.列表的排序

只能對列表中的某個元素進行排序,而且要使用$符號進行選擇

sort(data$one):對data列表中的one元素進行排序


四、數(shù)據(jù)對象的基本操作

1.查看及設(shè)置行和列名
names():可以得到數(shù)據(jù)對象行和列的名稱,可用于列表和數(shù)據(jù)框,對矩陣無效

row.names()和colnames():可得到數(shù)據(jù)對象行或列的名稱,可用于數(shù)據(jù)框和矩陣,對列表無效

dimnames():可得到數(shù)據(jù)對象行和列的名稱,先顯示行名,后顯示列名,對數(shù)據(jù)框和矩陣有效,對列表無效,因為列表并沒有行和列。

可同時使用上述函數(shù)對名稱進行設(shè)置


2.行列轉(zhuǎn)置

可使用t()函數(shù)進行行列轉(zhuǎn)置,無論之前是何種數(shù)據(jù)結(jié)構(gòu),轉(zhuǎn)置之后均變?yōu)榫仃嚱Y(jié)構(gòu)。

五、構(gòu)造數(shù)據(jù)對象

1.構(gòu)造列表

將不同數(shù)據(jù)結(jié)構(gòu)的對象合并在一起的唯一方式是使用列表,創(chuàng)建列表用list()函數(shù)。

2.構(gòu)造數(shù)據(jù)框
構(gòu)造數(shù)據(jù)框使用data.frame()函數(shù),數(shù)據(jù)框是數(shù)據(jù)列的集合,數(shù)據(jù)列可以是數(shù)值類型和文本類型,如果是文本類型,數(shù)據(jù)框?qū)⑵湟暈橐蜃?,?shù)字格式如果長度不同,則會以NA補齊。


3.構(gòu)造矩陣

cbind():將向量組成矩陣的列
rbind():將向量組成矩陣的行
如果向量中既有數(shù)字也有字符,那么數(shù)字將會被轉(zhuǎn)換為字符


此外,一般都是有matrix()函數(shù),matrix(data,nrow=2),必須指定正確的行或列數(shù),也就是說行貨列能夠被數(shù)據(jù)個數(shù)整除,否則會報錯

六、數(shù)據(jù)對象的轉(zhuǎn)換

as.data.frame():轉(zhuǎn)換為數(shù)據(jù)框
as.character():轉(zhuǎn)換為因子
as.matrix():轉(zhuǎn)換為矩陣
as.list():轉(zhuǎn)換為列表
as.table():轉(zhuǎn)換為表格

可以通過is.函數(shù)判斷數(shù)據(jù)對象的類型,如:is.data.frame判斷,返回的是邏輯值。也可以通過class()函數(shù),直接返回數(shù)據(jù)對象類型。

列表的轉(zhuǎn)換比較麻煩,最好是先轉(zhuǎn)為數(shù)據(jù)框再轉(zhuǎn)為其他,數(shù)據(jù)框不能直接轉(zhuǎn)換為表格,需要先轉(zhuǎn)換為矩陣,再轉(zhuǎn)換為表格。

stack()函數(shù)對于轉(zhuǎn)換數(shù)據(jù)框有特別的用處,因為它可以創(chuàng)建一列數(shù)值和一列因子的數(shù)據(jù)框形式。unstack是它的反向操作

此外,stack()函數(shù)還可以加入一些選項,得到更多的效果

例如,有數(shù)據(jù)框data如下:
  height    plant water
1       9 vulgaris    lo
2      11 vulgaris    lo
3       6 vulgaris    lo
4      14 vulgaris   mid
5      17 vulgaris   mid
6      19 vulgaris   mid
7      28 vulgaris    hi
8      31 vulgaris    hi
9      32 vulgaris    hi
10      7   sativa    lo
11      6   sativa    lo
12      5   sativa    lo
13     14   sativa   mid
14     17   sativa   mid
15     15   sativa   mid
16     44   sativa    hi
17     38   sativa    hi
18     37   sativa    hi

有三列數(shù)據(jù),一列數(shù)值兩列因子,我們可做如下操作

> unstack(data,form=height~plant)
  sativa vulgaris
1      7        9
2      6       11
3      5        6
4     14       14
5     17       17
6     15       19
7     44       28
8     38       31
9     37       32

> unstack(data,form=height~water)
  hi lo mid
1 28  9  14
2 31 11  17
3 32  6  19
4 44  7  14
5 38  6  17
6 37  5  15

> cc<-unstack(data,form=height~water)
> stack(cc,select = c(hi,lo))
 values ind
1      28  hi
2      31  hi
3      32  hi
4      44  hi
5      38  hi
6      37  hi
7       9  lo
8      11  lo
9       6  lo
10      7  lo
11      6  lo
12      5  lo

數(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); }