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

熱線電話:13121318867

登錄
首頁精彩閱讀使用R讀取并查看數(shù)據(jù)
使用R讀取并查看數(shù)據(jù)
2017-02-24
收藏

使用R讀取并查看數(shù)據(jù)

本篇文章介紹如何使用R語言讀取并查看數(shù)據(jù),包含一些最基礎(chǔ)的函數(shù)使用方法和說明。后面還會陸續(xù)介紹數(shù)據(jù)清洗,匹配和提取等相關(guān)的操作。

查看函數(shù)幫助

對于新手來說,在使用R時(shí)最重要的是了解不同函數(shù)的使用方法。很多時(shí)候我們都是邊用邊學(xué)的狀態(tài),拿到一個(gè)函數(shù)如何快速的使用起來,最快捷的方法就是查看函數(shù)的幫助。在R中查看函數(shù)的幫助有兩種方法,第一種是使用help,第二種是直接在函數(shù)前加問好(?)。R會直接顯示出這個(gè)函數(shù)是使用方法,函數(shù)說明和示例。下面是查看具體的代碼和幫助內(nèi)容的截圖。

help(read.csv)
?read.csv

除了使用幫助功能以外,還有一個(gè)重要操作是tab鍵,在輸入函數(shù)的過程中按下tab鍵,R會自動給出推薦的函數(shù)名稱以及參數(shù),避免很多記憶和重復(fù)輸入的工作。

準(zhǔn)備工作

在R中進(jìn)行任何操作和分析工作之前,先需要讀取數(shù)據(jù)。保存在工作目錄中的數(shù)據(jù)可以直接讀取,非工作目錄的其他位置在讀取時(shí)需要指明路徑。因此第一步工作是了解R的工作目錄。下面是具體的代碼,輸入getwd函數(shù),R返回當(dāng)前的工作目錄。

#查看工作目錄
getwd()
[1] "C:/Users/Documents"

你也可以對R的工作目錄進(jìn)行更改,使用setwd函數(shù)可以更改工作目錄的路徑。下面是具體的代碼。

#設(shè)置工作目錄
setwd("C:\\Users\\ r")

設(shè)置好工作目錄后,開始讀取數(shù)據(jù),并創(chuàng)建數(shù)據(jù)表。我們的數(shù)據(jù)在工作目錄下,因此直接讀取并命名為loandata。

#讀取并創(chuàng)建數(shù)據(jù)表
loandata=data.frame(read.csv('loan_data.csv',header = 1))

數(shù)據(jù)概覽

使用dim函數(shù)查看數(shù)據(jù)表的行列數(shù),loandata包含30行,10列數(shù)據(jù)。

#查看數(shù)據(jù)行列數(shù)
dim(loandata)
[1] 30 10

查看列名稱

使用names函數(shù)查看數(shù)據(jù)表的列名稱,下面列出了loandata數(shù)據(jù)表所有列的列名稱。

names(loandata)

內(nèi)容概覽

還有一種更加直觀查看數(shù)據(jù)的方法,使用數(shù)據(jù)編輯器。在R中使用fix函數(shù)可以調(diào)出數(shù)據(jù)編輯器,數(shù)據(jù)編輯器類似excel的表格界面,在數(shù)據(jù)編輯器中可以對字段的名稱及類型進(jìn)行簡單的修改。

#數(shù)據(jù)編輯器
fix(loandata)

查看數(shù)據(jù)表前10行

在處理的數(shù)據(jù)條目較多時(shí),可以使用head函數(shù)查看數(shù)據(jù)表。默認(rèn)情況下head函數(shù)顯示數(shù)據(jù)表的前5行數(shù)據(jù),我們也可以通過設(shè)置參數(shù)n的值來自定義顯示的行數(shù)。下面是代碼和結(jié)果截圖,在代碼中我們設(shè)置n=10來顯示數(shù)據(jù)表的前10行。

#查看數(shù)據(jù)表前10行
head(loandata,n=10)

查看數(shù)據(jù)后10行

Tail函數(shù)與head函數(shù)功能類似,用來顯示數(shù)據(jù)表的后5行數(shù)據(jù),下面的代碼中我們設(shè)置n=10來顯示數(shù)據(jù)表的后10行。

#顯示數(shù)據(jù)表后10行
tail(loandata,n=10)

查看數(shù)據(jù)類型

Typeof是查看不同字段數(shù)據(jù)類的函數(shù),下面我們使用這個(gè)函數(shù)查看了代碼數(shù)據(jù)表中貸款金額類型,顯示為double型。

#查看貸款金額列數(shù)據(jù)類型
typeof(loandata$loan_amnt)
[1] "double"

驗(yàn)證數(shù)據(jù)類型

除了直接查看字段的數(shù)據(jù)類型外,還可以對數(shù)據(jù)類型進(jìn)行驗(yàn)證。下面使用is.integer函數(shù)驗(yàn)證貸款金額字段是否為integer型。返回的結(jié)果為FALSE。說明這個(gè)字段不是integer型。

#驗(yàn)證貸款金額字段的數(shù)據(jù)類型 is.integer(loandata$loan_amnt) [1] FALSE

更改數(shù)據(jù)類型

查看或驗(yàn)證完數(shù)據(jù)類型后,還可以更改數(shù)據(jù)類型。下面我們使用as.integer函數(shù)將貸款金額字段由之前的double型改為integer型。

#更改貸款金額字段為integer型
loandata$loan_amnt=as.integer(loandata$loan_amnt)

再次使用typeof函數(shù)查看貸款金額列的數(shù)據(jù)類型,現(xiàn)在顯示為integer型。

#查看貸款金額列數(shù)據(jù)類型
typeof(loandata$loan_amnt)
[1] "integer"

查看字段

使用數(shù)據(jù)表名稱,$符號和列名稱可以直接查看特定列中的內(nèi)容,例如查看loandata表中的term字段。后面的很多操作都會使用到。

#查看貸款數(shù)據(jù)表中的期限列
loandata$term

描述統(tǒng)計(jì)

完成了數(shù)據(jù)表的導(dǎo)入,查看和修改數(shù)據(jù)類型操作后,我們可以開始對數(shù)據(jù)進(jìn)行一些簡單的統(tǒng)計(jì)和計(jì)算工作。R中的summary是描述統(tǒng)計(jì)函數(shù),可以對整個(gè)數(shù)據(jù)表或某一類提供描述統(tǒng)計(jì)報(bào)告。

直接將表面寫在summary函數(shù)中,可以得到整個(gè)數(shù)據(jù)表的描述統(tǒng)計(jì)報(bào)告,這里只包含數(shù)值類型的字段,非數(shù)值類型的字段無法進(jìn)行描述統(tǒng)計(jì)。

#對數(shù)據(jù)表進(jìn)行描述統(tǒng)計(jì)
summary(loandata)

輸入數(shù)據(jù)表和字段名稱可以得到特定字段的描述統(tǒng)計(jì)報(bào)告。下面是對代碼數(shù)據(jù)表中的貸款金額進(jìn)行描述統(tǒng)計(jì)的結(jié)果。描述統(tǒng)計(jì)報(bào)告中給出了貸款金額的最大值,最小值,中位數(shù)和四分位數(shù)等數(shù)據(jù)。

#對數(shù)據(jù)表進(jìn)行描述統(tǒng)計(jì)
summary(loandata)

關(guān)鍵指標(biāo)計(jì)算

除了描述統(tǒng)計(jì)外,還可以對數(shù)據(jù)表進(jìn)行計(jì)算。首先是最基本的求和和計(jì)數(shù)。Sum是求和函數(shù),在sum函數(shù)中輸入制定的列就可以獲得求和結(jié)果。下面是對貸款數(shù)據(jù)表中的貸款金額進(jìn)行求和。

#對貸款金額字段求和
sum(loandata$loan_amnt)
[1] 233925

Length是R中的計(jì)數(shù)函數(shù),下面代碼對用戶ID字段進(jìn)行計(jì)數(shù)。數(shù)據(jù)表中共有30個(gè)用戶ID。

#對貸款金額字段進(jìn)行計(jì)數(shù)
length(loandata$member_id)
[1] 30

Unique是唯一值函數(shù),配合計(jì)數(shù)函數(shù)length可以對唯一值進(jìn)行計(jì)算。下面的代碼中先對用戶ID進(jìn)行排重,然后進(jìn)行計(jì)數(shù)。

#對用戶ID字段取唯一值并進(jìn)行計(jì)數(shù)
length(unique(loandata$member_id))
[1] 30

不同字段間也可以進(jìn)行計(jì)算,并生成新的字段添加在數(shù)據(jù)表中。下面通過貸款利息和貸款金額字段相除獲得貸款利率字段,保留兩位小數(shù)添加在原貸款數(shù)據(jù)表中。

#貸款利率=貸款利息/貸款金額
loan_int=round((loandata$total_rec_int)/(loandata$loan_amnt),digits = 2)
#將貸款利率列合并到貸款數(shù)據(jù)表中,并查看前5行數(shù)據(jù)
head(cbind(loandata,loan_int))

下面的代碼表示了貸款金額與貸款金額列的匯總值進(jìn)行計(jì)算,獲得每一筆貸款金額在總金額中的占比,并將這個(gè)貸款金額占比數(shù)據(jù)保留兩位小數(shù)后添加到原數(shù)據(jù)表中。

#貸款金額占比=貸款金額/貸款金額匯總
loan_percent=round((loandata$loan_amnt)/sum(loandata$loan_amnt),digits = 2)
#將貸款金額占比合并到貸款數(shù)據(jù)表中
loandata=cbind(loandata,loan_percent)
#查看新生成的貸款數(shù)據(jù)表
head(loandata)


數(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)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(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); }