r 函數返回多個值_第四講 R描述性統計分析

00f9b8ca633044187100a95163c8ac5a.gife28f814c8a22e73413887fbda63af508.gif

在“R與生物統計專題”中,我們會從介紹R的基本知識展開到生物統計原理及其在R中的實現。以從淺入深,層層遞進的形式在投必得醫學公眾號更新。

在上一講中,我們介紹了第三講 R編程基礎-矩陣和數據框?(戳這里即可跳轉)到現在為止,大家已經學完了R語言的基礎知識,馬上就開始進階地學習一些R語言相關的統計學技能了。

今天的更新,我們會帶您學習R的基本統計學技能:描述性統計分析。

1. 將數據導入R

1.1 準備好你的數據命名約定
  • 避免名稱帶有空格。

? ????? 好的列名:patient_age或patient.age。

? ??????列名錯誤:patient age。

  • 避免使用帶有特殊符號的名稱:?,$,*,+,#,(,),-,/,},{,|,>,

  • 避免以數字開頭的變量名。請改用字母。

    好的列名稱:patient_1st_meal或x1st_meal。

    列名錯誤:1st_male

  • 列名必須是唯一的。不允許重復的名稱。

  • R區分大小寫。這意味著名稱不同于名稱或名稱。

  • 避免數據中出現空白行。

  • 刪除文件中的任何評論。

  • 用NA替換缺少的值(不可用)。

  • 如果你有包含日期的列,請使用四位數格式

    格式良好:20160101。

    格式錯誤:01/01/16

1.2 將數據保存在外部.txt標簽或.csv文件中1.3 如下將數據導入R
# 對于.txt文件my_data 
# 對于.csv文件my_data 

在這里,我們將使用名為iris的內置R數據集。

# 導入R內自帶的iris數據集library(datasets)data(iris)
# 將數據存儲在變量my_data中my_data 
1.3 檢查數據

你可以使用head()和tails()函數檢查數據,這將分別顯示數據的第一部分和最后一部分。

# 顯示前六行內容head(my_data, 6)

輸出結果如下

Sepal.Length?Sepal.Width?Petal.Length?Petal.Width?Species

1??????????5.1?????????3.5??????????1.4?????? 0.2??setosa

2??????????4.9?????????3.0??????????1.4???????0.2??setosa

3??????????4.7?????????3.2??????????1.3?????? 0.2??setosa

4??????????4.6?????????3.1??????????1.5???? ? 0.2??setosa

5??????????5.0?????????3.6??????????1.4???? ? 0.2??setosa

6??????????5.4?????????3.9??????????1.7?????? 0.4??setosa

2.?常用的描述性統計的R函數

一些用于計算描述性統計量的R函數:

??R函數?

6f13dcce22dc0b020f45e5bc3553d839.png

3. 單個組的描述性統計

3.1 集中趨勢的度量:均值,中位數,眾數

粗略地說,集中趨勢衡量的是數據的“平均”或“中間”。最常用的衡量指標包括:

集中趨勢

平均值:平均值。它對異常值很敏感。

中位數:中間值。這是一個強有力的替代手段。

眾數:最頻繁出現的值

在R中

  • 函數mean()和median()可以分別計算平均值和中位數;

# 計算平均值mean(my_data$Sepal.Length)

[1] 5.843333

# 計算中位數median(my_data$Sepal.Length)

[1] 5.8

3.2 可變性的度量

可變性度量給出了數據“分散”的程度。

范圍

極值:最小值和最大值

范圍:最大值減去最小值

# 計算最小值min(my_data$Sepal.Length)

[1] 4.3

# 計算最大值max(my_data$Sepal.Length)

[1] 7.9

# 范圍range(my_data$Sepal.Length)

[1] 4.3 7.9

四分位間距

四分位數將數據均勻分為4部分。四分位數間距(IQR):對應于第一和第三四分位數之間的差異-有時被用作標準偏差的可靠替代方案。

  • R功能:

quantile(x, probs = seq(0, 1, 0.25))
  • x:需要樣本分位數的數值向量。

  • probs:在[0,1]之間的概率數值向量。

  • 例:

quantile(my_data$Sepal.Length)

0% ?25% ?50% ?75% 100%

4.3 ?5.1 ?5.8 ?6.4 ?7.9

# 計算十分位數(0.1,0.2,0.3,…,0.9):quantile(my_data$Sepal.Length, seq(0, 1, 0.1))
# 計算四分位間距:IQR(my_data$Sepal.Length)

[1] 1.3

方差和標準差

方差表示與均值的平均平方差之和。標準差是方差的平方根。它測量數據中數值與平均值的平均偏差。

# 計算方差var(my_data$Sepal.Length)
# 計算標準差sd(my_data$Sepal.Length)
絕對中位數

絕對中位數(Median absolute deviation,MAD):數據中值與中值的偏差,即先計算出數據與它們的中位數之間的殘差(偏差),MAD就是這些偏差的絕對值的中位數。

# 計算中位數median(my_data$Sepal.Length)
# 計算絕對中位數mad(my_data$Sepal.Length)
統計描述方式的選擇
  • 范圍。它不經常使用,因為它對異常值非常敏感。

  • 四分位間距。對于異常值,它非常強大。它多與中位數結合使用。

  • 方差。完全無法解釋的,因為它不使用與數據相同的單位。除了用作數學工具外,很少被使用。

  • 標準偏差。方差的平方根。它以與數據相同的單位表示。在均值是集中趨勢的分布(多指正態分布)的情況下,通常使用標準偏差。

  • 絕對中位數。對于具有離群值的數據,這是一種估算標準偏差的可靠方法。但是不經常使用。

  • 總而言之,四分位間距和標準差是用于報告數據變異性的兩種最常用的度量。

3.3 計算變量和整個數據框的整體摘要summary()函數

函數summary()可用于顯示一個變量或整個數據框的多個統計變量概況。

  • 單個變量的概況。

返回六個值:平均值,中位數,第25和,75四分位數,最小值和最大值。

summary(my_data$Sepal.Length)

輸出結果如下:

Min. 1st Qu.  Median    Mean 3rd Qu.    Max.4.300   5.100   5.800   5.843   6.400   7.900
數據框概況

在這種情況下,函數summary()將自動應用于每列。結果的格式取決于列中包含的數據類型。例如:

  • 如果列是數字變量,則返回均值,中位數,最小值,最大值和四分位數。

  • 如果該列是一個因素變量(factor),則返回每個組中的觀察數。

summary(my_data, digits = 1)

輸出結果如下:

Sepal.Length  Sepal.Width  Petal.Length  Petal.Width        SpeciesMin.   :4     Min.   :2    Min.   :1     Min.   :0.1   setosa    :501st Qu.:5     1st Qu.:3    1st Qu.:2     1st Qu.:0.3   versicolor:50Median :6     Median :3    Median :4     Median :1.3   virginica :50Mean   :6     Mean   :3    Mean   :4     Mean   :1.23rd Qu.:6     3rd Qu.:3    3rd Qu.:5     3rd Qu.:1.8Max.   :8     Max.   :4    Max.   :7     Max.   :2.5
3.4 缺失值的情況Tips

當數據包含缺失值時,即使僅缺少一個值,某些R函數也會返回錯誤或NA。

例如,即使向量中僅丟失一個值,mean()函數也將返回NA。使用參數na.rm = TRUE可以避免這種情況,該參數告訴函數在計算之前刪除所有NA。使用均值函數的示例如下:

mean(my_data$Sepal.Length, na.rm = TRUE)

好了,本期講解就先到這里。

在之后的更新中,我們會進一步為您介紹R的入門,以及常用生物統計方法和R實現。歡迎關注,投必得醫學手把手帶您走入R和生物統計的世界。

提前打個預告,接下來我們要正式開始學習R語言的統計學技能啦,下一期將會更新“R的描述性統計分析”。喜歡的同學們快快關注起來吧。

65a047d11be7a21743682c7e4859d09d.gif第一講 R-基本介紹及安裝第二講 R-編程基礎-運算、數據類型和向量等基本介紹第三講 R編程基礎-矩陣和數據框

當然啦,R語言的掌握是在長期訓練中慢慢積累的。一個人學習太累,不妨加入“R與統計交流群”,和數百位碩博一起學習。

快掃二維碼撩客服,

帶你進入投必得醫學交流群,

讓我們共同進步!

↓↓

19af7fccb9434fc33927247039f19acc.png

- END -

長按二維碼關注「投必得醫學」,更多科研干貨在等你!

ebb4a549ecb0fd0d5894297a696edd60.png

麻煩點一下在看再走唄

5ffeb3be29ff1afa7a654d87d4a05e88.gif

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538964.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538964.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538964.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

python雙線性插值函數_雙線性插值法原理 python實現

碼字不易,如果此文對你有所幫助,請幫忙點贊,感謝!一. 雙線性插值法原理:① 何為線性插值?插值就是在兩個數之間插入一個數,線性插值原理圖如下:在位置 x 進行線性插值,插…

張恩民 php,php100教程_php100張恩民php視頻 56課時_網站編程_寂涯網絡學習基地

1、PHP基本語法和數據類型:(1)、PHP基本語法:1、htm 和 php 混編2、一個語句以 ; (分號結束)3、如何定義一個變量,和變量的使用(2)、PHP數據運算類型四種標量類型:boolean(布爾型)integer(整型)float(浮點型,也作“do…

Oracle 自帶sqldeveloper導入數據到表

步驟 1、建一張字段名和類型與要導入數據一致的表。 2、如果是excel文件,另存為 csv文件。 因為excel文件遇到空格會報錯,excel文件太大工具會讀取文件失敗。 而csv文件是秒級讀取,有空格也會導入不會報錯。 ------------- 更多的Java&am…

百度騰訊中興華為全部入局Linux Foundation深度學習基金會

2019獨角獸企業重金招聘Python工程師標準>>> 雖然名字叫做Linux Foundation,但是這家基金會關注的領域并不局限在Linux操作系統領域。事實上,Linux Foundation基金會還為很多其他開源基金和項目提供支持,比如Cloud Foundry、Autom…

python判斷點在矩形內_判斷平面內矩形和圓是否有交點的python實現

#! /usr/bin/env python# -*- coding: utf-8 -*-filename : 平面坐標內矩形與圓是否相交usage :authors : U{peterguo}copyright: tencentdate : 2012.08.21version : 1.0.0.0Modified History:2012.08.21 創建import osimport sysimport reimport urllib2import timeimport da…

python讀取mysql數據庫_Python操作MySQL數據庫9個實用實例

在Windows平臺上安裝mysql模塊用于Python開發 用python連接mysql的時候,需要用的安裝版本,源碼版本容易有錯誤提示。下邊是打包了32與64版本。 MySQL-python-1.2.3.win32-py2.7.exe MySQL-python-1.2.3.win-amd64-py2.7.exe 實例 1、取得 MYSQL 的版本 #…

win主機上搭建php網站運行環境,Windows server 2008搭建php運行環境圖文詳解(php5.3)

這篇文章主要為大家分享下Windows server 2008搭建php運行環境的步驟,需要的朋友可以參考下下載php組件包首先到http://windows.php.net/download/下載你需要的php版本,這里我下載的是php5.3。下面解壓php組件 包到磁盤上。安裝Microsoft Visual C 2008 …

python 登陸微博 被刪除 token_爬取微博信息,使用了cookie仍然無法登錄微博

按照網上的模板自己寫了類似的代碼爬取微博,可是response回來的html是登錄界面的html,應該是沒有成功登陸微博,但是和網上的代碼是基本一樣的from bs4 import BeautifulSoupimport pandas as pdimport requestsurl "https://weibo.cn/2…

plsql developer連接oracle--本地不安裝oracle

工具 數據庫開發程序 PLSQL Developer oracle 客戶端 instantclient,點擊下載 (下載與oracle相同版本或最新版本,如果 PLSQL Developer是32位,則要下載32位的)安裝 1、解壓oracle客戶端 到盤某個目錄。我的目錄是C:\or…

ubuntu networking 與 network-manager

剛遇到的坑,因為操作不當導致網絡中斷,于是手動配置了/etc/network/interfaces , 修復了系統之后發現ubuntu-desktop中的有線鏈接不見了,百度了一下說是networking服務和network-manger服務會起沖突。 【Server版本】 在UbuntuServer版本中&…

mysql 升序_mysql 的 查找 與 排序

mysql 的 查找 &#xff1a;SELECT name,age FROM mytable; # 在mytable 中所有的name,age 數據SELECT name,age FROM mytable WHERE age>25; #在mytable 中所有的name,age 數據&#xff0c;其中age必須小于25SELECT name,age FROM mytable WHERE age<25 OR age>30; #…

Hadoop3.0的新特性

轉載&#xff1a;http://blog.csdn.net/sinat_31726559/article/details/52103229 點擊閱讀原文 -------------------------------------- 1. Hadoop3.0簡介 Hadoop 2.0是基于JDK 1.7開發的&#xff0c;而JDK 1.7在2015年4月已停止更新&#xff0c;這直接迫使Hadoop社區基于…

python torch exp_學習Pytorch過程遇到的坑(持續更新中)

1. 關于單機多卡的處理&#xff1a;在pytorch官網上有一個簡單的示例&#xff1a;函數使用為&#xff1a;torch.nn.DataParallel(model, deviceids, outputdevice, dim)關鍵的在于model、device_ids這兩個參數。DATA PARALLELISM?pytorch.org但是官網的例子中沒有講到一個核心…

php 讀文件返回字符串,PHP:file_get_contents('php:// input')返回JSON消息的字符串...

我正在嘗試在我的PHP應用程序中讀取JSON消息&#xff0c;這是我的php代碼&#xff1a;$json file_get_contents(php://input);$obj json_decode($json, TRUE);echo $obj->{S3URL};當我這樣做時&#xff0c;出現以下錯誤&#xff1a;Trying to get property of non-object …

Android中ListView數據使用sAdapter.notifyDataSetChanged();方法不刷新的問題

原文鏈接&#xff1a;http://blog.csdn.net/caihongdao123/article/details/51513410 點擊閱讀原文 ------------------------- 1.涉及到數據庫 當要動態顯示更數據庫改動&#xff0c;相信大家應該都用過notifyDataSetChanged();. 例如&#xff1a; ...... …

keepalived配置高可用集群

準備工作 分別在主從上安裝keepalived和nginxyum install -y keepalivedyum install -y nginx關閉主從上的防火墻和SELinuxsystemctl stop firewalldsetenforce 0 配置主機 查看主機ip [rootlynn-04 ~]# ifconfig ens33: flags4163<UP,BROADCAST,RUNNING,MULTICAST> mtu…

如何快速掌握python包_如何快速掌握一個python模塊?

初學者就別想快了。 我自己是這樣的。先上網看看一些基礎的教程&#xff0c;非常快的過一下&#xff0c;十幾分鐘&#xff0c;主要是了解這個module能干什么&#xff0c;特別是一些基本的功能&#xff0c;頭腦中建立起初步映射。 然后就是用了&#xff0c;不用看了也白搭。我假…

python設計一個函數定義計算并返回n價調和函數_python函數的調和平均值?

我有兩個函數&#xff0c;給出精度和召回分數&#xff0c;我需要做一個調和平均函數&#xff0c;定義在同一個庫中&#xff0c;使用這兩個分數。函數如下所示&#xff1a;功能如下&#xff1a;def precision(ref, hyp):"""Calculates precision.Args:- ref: a l…

jsp超鏈接到java文件,jsp頁面超鏈接傳中文終極解決辦法

在做web前端頁面的時候&#xff0c;經常碰到傳中文問題。網上有許多方案&#xff0c;但仍不能根治&#xff0c;最終要用js或者java的encode相關方法。常規方案有三部&#xff1a;1.改tomcat的server.xml中URIEncodeing為utf-82.頁面中編碼設置為utf-83.整個項目編碼使用utf-8我…

自定義ListView中的分割線

原文&#xff1a;http://blog.csdn.net/zuolongsnail/article/details/7187302點擊閱讀 --------------------------------------- ListView中每個Item項之間都有分割線&#xff0c;設置Android:footerDividersEnabled表示是否顯示分割線&#xff0c;此屬性默認為true。 1.不顯…