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

熱線電話:13121318867

登錄
首頁(yè)精彩閱讀R語(yǔ)言描述統(tǒng)計(jì)第一彈 | 計(jì)算泰坦尼克號(hào)不同艙位的存活率
R語(yǔ)言描述統(tǒng)計(jì)第一彈 | 計(jì)算泰坦尼克號(hào)不同艙位的存活率
2020-09-28
收藏

作者:丁點(diǎn)helper

來(lái)源:丁點(diǎn)幫你

今天開(kāi)始學(xué)習(xí)在R語(yǔ)言中做描述性統(tǒng)計(jì)。為了便于大家邊學(xué)邊練,可以下載這個(gè)數(shù)據(jù):

文件名:titanic.csv

鏈接:https://pan.baidu.com/s/1Pj0EsaBZdnw6mHPpeVd9Aw  

密碼:  yuym

將本地文件導(dǎo)入到R中

為了便于數(shù)據(jù)管理和操作,我們通常會(huì)把數(shù)據(jù)保存為.csv格式,這是excel中的一種較為簡(jiǎn)單的數(shù)據(jù)格式。想要把一個(gè).csv格式的數(shù)據(jù)導(dǎo)入R,可以用read.csv()這個(gè)函數(shù):

# 將本地文件titanic.csv導(dǎo)入到R中,
# 并存儲(chǔ)到titanic這個(gè)對(duì)象中titanic 
  <- read.csv("http://Users//Desktop//titanic.csv",header = TRUE)

假設(shè)該本地文件存儲(chǔ)的是1912年沉沒(méi)于大西洋的巨型郵輪泰坦尼克號(hào)中乘客的基本信息。

上面第一個(gè)命令"http://Users//Desktop//titanic.csv"是文件titanic.csv的本地存儲(chǔ)地址,大家要根據(jù)自己電腦的存儲(chǔ)位置自行調(diào)整;

第二個(gè)命令header = TRUE 是指將原文件中的第一行自動(dòng)設(shè)置為文件的列名。

如果你的.csv文件中并無(wú)列名,而是希望在導(dǎo)入R之后再設(shè)置,則應(yīng)將第二個(gè)命令設(shè)置為header = FALSE。

了解數(shù)據(jù)

上篇文章講過(guò),拿到一個(gè)數(shù)據(jù)庫(kù),首先要了解它的基本信息。之前已經(jīng)講過(guò),我們簡(jiǎn)單復(fù)習(xí)一下。

class(titanic)  
#對(duì)象是什么數(shù)據(jù)結(jié)構(gòu)[1] "data.frame"dim(titanic)    
#查看數(shù)據(jù)有幾行幾列[1] 1309    6names(titanic)  
#查看數(shù)據(jù)的列名[1] "pclass"  "survived"  "sex"   "age"  "sibsp"  "parch" head(titanic)   
#查看前6行tail(titanic)   
#查看后6行

可以知道,titanic這個(gè)數(shù)據(jù)框中有1309條記錄,6個(gè)變量。

這6個(gè)變量依次為艙位等級(jí)、是否幸存、性別、年齡、同行的兄弟姐妹或配偶數(shù)量、同行的父母或子女?dāng)?shù)量。

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

接下來(lái)我們來(lái)對(duì)titanic這個(gè)數(shù)據(jù)做描述性統(tǒng)計(jì)。

1. 每個(gè)等級(jí)的船艙中分別有多少人?

有兩種方法,一是table()函數(shù),用于統(tǒng)計(jì)分類(lèi)變量pclass中各類(lèi)別的頻數(shù);二是summary()函數(shù),功能是做描述性統(tǒng)計(jì),既適用于分類(lèi)也適用于計(jì)數(shù)變量,可以用來(lái)統(tǒng)計(jì)分類(lèi)變量的頻數(shù)、計(jì)算計(jì)數(shù)變量的均數(shù)、百分位數(shù)等。

# 方法一table(titanic$pclass) 1st 2nd 3rd  323 277 709# 方法二summary(titanic$pclass) 1st 2nd 3rd  323 277 709

2. 遇難者與幸存者分別有多少人?

table(titanic$survived)   
died  survived       
809      500 

3. 每個(gè)等級(jí)的艙位中分別有多少人遇難、多少人幸存?

本例中,按照『艙位等級(jí)』和『是否幸存』兩個(gè)條件統(tǒng)計(jì)乘客狀況,共6種可能。仍使用table()函數(shù),統(tǒng)計(jì)每種可能的狀況分別有多少人,生成交叉列聯(lián)表。

# 將列聯(lián)表存儲(chǔ)在tab1中tab1 
  <- table(titanic$survived,titanic$pclass)
# 查看tab1的內(nèi)容tab1           
1st 2nd 3rd   died      
123 158 528   
survived  
200 119 181

4. 每個(gè)等級(jí)的艙位中幸存者的比例是多少呢?

思路很簡(jiǎn)單,就是每等級(jí)艙位中幸存者的人數(shù)占該艙位總?cè)藬?shù)的比例。

1)那我們先看看每等級(jí)艙位中幸存者的人數(shù)怎么算,上面的tab1第二行就是,只需要將其提取出來(lái),方法和前面講過(guò)的如何提取數(shù)據(jù)框中的行和列相同:

#提取tab1的第二行tab1[2, ] 
1st 2nd 3rd  
200 119 181

2)每種艙位總?cè)藬?shù)?上面也已經(jīng)計(jì)算過(guò):

table(titanic$pclass) 
1st 2nd 3rd  
323 277 709

還有一種方法,使用apply()函數(shù),功能是對(duì)矩陣類(lèi)數(shù)據(jù)的行或列進(jìn)行批量處理:

apply(tab1,2,sum) 
1st 2nd 3rd 
323 277 709

函數(shù)中有三個(gè)命令。第一個(gè)命令tab1表示待處理的數(shù)據(jù);第二個(gè)命令2表示對(duì)tab1的每一列進(jìn)行處理,若需處理每一行,則第二個(gè)命令應(yīng)輸入數(shù)字1;第三個(gè)命令sum表示求和。

因此,上述語(yǔ)句的意義為:對(duì)tab1中的每一列求和,即計(jì)算每個(gè)等級(jí)艙位中的總?cè)藬?shù)。

3)求每等級(jí)艙位中幸存者的人數(shù)占該艙位總?cè)藬?shù)的比例:

# 方法一
tab1[2, ]/table(titanic$pclass)      
1st       2nd       3rd    
0.6191950 0.4296029 0.2552891 
# 方法二
tab1[2, ]/apply(tab1,2,sum)      
1st       2nd       3rd    
0.6191950 0.4296029 0.2552891

4)你一定也發(fā)現(xiàn)了,這個(gè)結(jié)果非常不美觀,也不適合在科研工作中報(bào)告。我們做以下變化:

# 先乘以100
tab1[2, ]/apply(tab1,2,sum)*100 
1st      2nd      3rd 
61.91950 42.96029 25.52891
# 保留2位小數(shù) 
round(tab1[2, ]/apply(tab1,2,sum)*100,2)   
1st   2nd   3rd  
61.92 42.96 25.53

round()函數(shù)的功能是保留小數(shù)位數(shù)。

上面的代碼中,第一個(gè)命令tab1[2, ]/apply(tab1,2,sum)*100 是需要保留小數(shù)的對(duì)象;

第二個(gè)命令2是指保留2位小數(shù)。

5)可是這個(gè)結(jié)果顯然不對(duì),加上百分號(hào)%才是準(zhǔn)確的。需要用到paste()函數(shù),該函數(shù)的功能是把各種元素連接起來(lái),本例中,我們希望把數(shù)字和百分號(hào)連接:

paste(round(tab1[2, ]/apply(tab1,2,sum)*100,2),"%",sep="")
"61.92%" "42.96%" "25.53%"

第一個(gè)命令round(tab1[2, ]/apply(tab1,2,sum)*100,2) 就是上面計(jì)算好的百分?jǐn)?shù)的數(shù)字部分,這是要連接的第一部分;

第二個(gè)命令"%" 是要連接的第二部分;

第三個(gè)命令sep="" 指兩個(gè)元素之間的連接符號(hào),這里我們不需要任何連接符號(hào),所以引號(hào)""之間什么都不用寫(xiě)。

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

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

OK
客服在線
立即咨詢(xún)
客服在線
立即咨詢(xún)
') } 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)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(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ù)說(shuō)明請(qǐng)參見(jiàn):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 = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+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); }