30 天學會R語言 DAY 2:R 程序和數據介紹

2021-02-25 醫學論文與統計分析

第二天  R程序和R數據介紹

本文來了解下R語言關鍵的組成部分:R程序和R數據

R語言程序主要由R程序及其分析結果組成

1. R程序

R程序由多行代碼組成(基於S語言),是由命令和結果名組成。

例如:

Lg<-log(10)  #計算10的自然對數值

其中,

2.R語言的分析結果

上述已經提過,R語言分析在一個名字為結果名的包中,想要知道結果,只要如果你想知道Lg的內容。直接再輸入以下命令,就出來結果了。

Lg

上述程序合併在一起就是

Lg<-log(10)

Lg

有些時候命令不打包,也就是不賦值,則直接log(10)就可以出來結果了。

log(10)

3. R程序的具體運行過程

R程序運行過程,全部可以在Rstudio文本編輯器操作。如果要將兩行全部運行,選中全部,點擊右上角run按鈕。如果只想跑一行,講滑鼠放置在改行,點擊右上角run按鈕即可

具體GIF動畫


4. R命令的主要形式:函數

大多數R語言的命令為函數。中學學過數學我們就知道f(x),為函數的基本表現方法。在R語言也是如此。

log(10)中,log為函數名,往往形式為log(),即為y=ln(x)。10為一個函數的參數,也就是其中的x。

R語言包的方便就在於,對於複雜的函數,我們無序自己手動去計算函數的值,R語言作者通過編寫程序,已經寫了一系列的函數,幫助我們去直接計算。比如計算標準差sd,無需將標準差的公式寫出來計算,只需sd()即可

函數中,要納入的參數往往不是一個,很多時候函數()中的參數很多。比如,我需要產生一連續的的數據,採用seq的方法。比如我想產生1-5直接連續的一串數據,那麼就可以

這裡面的參數看起來有2個,也就是一頭一尾的界值。但實際上seq()的參數總共是五個,包括from,to,by,length.out,along.with 另外三個一般都預設了。

seq(from = 1, to = 1, by = ((to - from)/(length.out - 1)), length.out = NULL, along.with = NULL, ...)

如果我們加一個by參數(間隔2個單位產生一串數據):

因此,R語言函數其實設定的參數個數往往都不少,一般情況下,我們以預設的方法可以忽略它,但是特殊情況必須要進行設置。各種函數的參數解釋可以輸入help()語句進行學習:

5. R語言簡單計算

以下是R語言最基本的數學計算公式,請大家進行根據R函數進行簡單的運算

加減乘除:+  -  *  / ;

> 1+1  #程序

[1] 2  #運算結果

平方根:sqrt()  

> sqrt(25)  #程序

[1] 5       #運算結果

對數:log2()、log10()、log(a,base=exp(1))

> log(10)     #程序

[1] 2.302585  #運算結果

其他還包括:餘數、整除:%%  %/%;冪、指數:^;判斷符號  ==    >  <   !=  <=  >= 等

1. R 數據產生的方式

R數據產生往往有兩種:第一種是利用R函數直接產生相應的數據集,一般用來舉例、方便學員理解;另外一種是從外界的資料庫比如EXCEL,導入數據,形成數據集,這種是大多數R數據分析的的方式。

今天文章先來先來介紹第一種方法。利用R函數直接產生資料庫的方法,最常用的是利用最基本的函數c( )

舉例:c()產生一串數據,並賦值結果名(數據名)x1、x2

> x1<-c(2,4, 6, 10) #產生數據,數據名為x1

或者

> x2<-c("A","B", "C","D") #產生數據,數據名為x2

R語言也可以不用 c( ),直接產生連續等距數據:

> x3<-1:5   #產生1-5直接連續整數數據,數據名為x2

我們也可以利用seq(1,5)產生等距的數據串,本文先前已經介紹過了。也可以利用

2. R數據的類型

R數據類型可以從兩個角度進行分類,一種是根據數據值本身,或者統計學上所說的變量值來進行判斷;第二種角度,根據變量特性進行判斷。

第一種角度,變量觀察值的類型

根據數據值,我們可以有以下多種形式

數字(double/numeric, 縮寫num)

整數(integer, 縮寫int) : 1L, 2L

虛數(complex, 縮寫cplx) :1+2i, 3-5i

邏輯(logic, 縮寫logi) : True, False

文字(character, 縮寫chr)

x1<-c(2, ,4, 6, 10),x1數據集全部為數字型

x2<-c(「A」, 「B」, 「C」, 「D」),x2 數據集全部為文字型

特別注意的是,R語言邏輯型數據為True, False,或者T,F,他們不是字符串,而是對客觀現象的一種判斷,在R語言有特殊的地位,今後會經常碰到,敬請注意。

函數class( ) 可以鑑定一串數據的類型

在醫學研究中,數據由變量組成,變量可以分為數值變量和分類變量。

數值變量數據,一般來說變量值都以數值為主。包括整數型和數值型向量

> x4<-c(170,171,161,164) # 產生身高的變量

> x4

[1] 170 171 161 164

 

分類變量數據,包括無序和有序。變量值的屬性結果,比如女性或者男性,在R語言中分類變量我們稱之為因子(factor)。

主要包括:字符型變量;整數型變量: 1、2;邏輯性變量;醫學資料庫最常見的類型是整數型變量,即便是字符型變量(性別,男性和女性),也通常會以整數型變量體現,比如1,2來表示,用1代表男,用2代表女。這樣做好處非常明顯:資料庫主要開展數學運算,數學運算對象,最好是數字。

對於字符串型的分類數據,R語言直接認定為因子

對於數值型分類數據,R語言很多時候認定為數值變量數據,需要用factor( )或者as.factor( )函數進行轉換

factor( )可將整數型向量轉為分類變量數據,變成因子

> f1<-factor(c(1,2,1,3,2,4,2,4,2,1))

factor( )可以加levels參數設定,對因子順序進行重新排列

> f2<-factor(c(1,2,1,3,2,4,2,4,2,1),levels=c(2,1,4,3))

在f2數據集產生過程中,函數加了條件levels。加levels的意思是,對裡面因子1,2,3,4的排列順序重新調整,在這個例子中,2這個一類別是放在最前面的,在以後統計分析中,作為對照組。這一操作是否有價值,我們可以在統計分析中,任意設定對照組,而不是只以第一組或者第四組為對照

我們還可以設定值的標籤:

f3<-factor(c(1,2,1,3,2,4,2,4,2,1), levels=c(2,1,4,3), 

     labels = c("A","B","AB","O"))

對於因子,我們還有更多的操作,諸位可以試試

DAY2的內容就介紹到這裡!


最後,一個月就能學會R語言,你敢挑戰一下嗎?

想挑戰的話,請加入R語言的交流群吧?(由於群規模限制,請先加入鄭老師微信號:掃描以下二維碼,並註明R語言)

歡迎關注本公眾號,我們是資源的搬運工,所有科研資源全部免費下載:

1.  醫學統計學習全套視頻,妙趣+高級+SPSS+測試題,讓你從入門到精通!

2.  重磅資源:100本「臨床試驗與統計學方法」英文書籍大放送!

3.《中國統計年鑑》1978-2019,巨量呈現40年全國各行業指標(包括衛生、人口在內)!

4.  2006-2018中國衛生統計年鑑合集

5.  公共衛生研究必備:5次國家衛生服務調查100萬居民分析報告

6.  重磅推薦:全網最全的醫學統計相關軟體,免費下載,均已破解。

7.  如何製作與分析量表?中英文權威書籍來幫忙。

8. 重磅推出2019年45份大健康產業研究報告

9. 最新Win和MAC版統計軟體SPSS 26.0、Stata16.0和Graphpad prism8.0

10.精選R語言入門學習資源:視頻+文檔,初學者者必備!

請點擊「閱讀原文」,即可獲得30天學會R語言的所有講義的百度網盤連結下載! (下載密碼請關注公眾號,發送「30天」即可)

相關焦點

  • 利用R語言進行logistic回歸分析 | 30 天學會R DAY 26
    數據整理我在上一講已經介紹過,現在不妨再重複以下操作。1. 新變量產生#利用dplyr包mutute語句產生新變量BMItt<-mutate(tt, bmi=weight/(height^2)*10000)2.
  • R語言-初識與數據結構
    S語言:1976年貝爾實驗室發展起來的數據交互分析系統;是一種高級程序語言,很好地統計應用快速開發系統。程序代碼;可運行多個R 程序;可直接瀏覽工作表和數據;可隨意縮放繪製的圖形,並且有多種輸出格式;整合R 幫助和R 使用文檔;可查看R 命令的運行記錄。
  • Day7:R語言課程 (R語言進行數據可視化)
    雖然R語言也有「循環」,但有些函數更直接,例如apply()函數map()族和函數族。map()族比apply()更直觀,因此主要學習map()。想學更多更多內容,可以使用apply()函數的資料(https://hbctraining.github.io/Intro-to-R/lessons/apply_functions.html)。2.
  • R語言從入門到精通:Day6-R語言數據操作進階及控制結構
    數據處理是R語言和數據挖掘的重要基礎,要求大家務必熟練操作,所以今天我們就從一個簡單的實例出發,給大家繼續講解數據處理進階及控制結構。1、本節內容重點內容較多,      務必緊跟紅色標記。2、測試數據及代碼      見文末客服小姐姐二維碼。
  • 數據科學養成記 之 R語言基礎(2)——關於R包
    在上一節的學習中,我們已經學習了如何將數據導入R中進行數據分析。R作為一種主力的分析語言有著其獨特的優勢:大量的R包可供大家使用,提供方便快捷的數據分析,挖掘。目前有上千個R包(R package)可供大家使用,可從cran-r 下載。
  • R編程與R繪圖
    大部分情況下解決某些問題還需要依賴一些事實或數據,結合數據分析的框架和計算工具來幫助我們決策和判斷。這時候R語言編程就會派上用場。例如從大的方面來看,投資方要決定在何處建立風力發電場,就需要採集天氣數據加以建模分析,評估各項目方案。從小的方面來看,個人是否應該購買某個理財產品,你需要獲取過去的市場信息,模擬未來可能的變化,計算該項資產未來的期望收益和標準差。
  • R語言對接高級語言Fortran
    (1)Fortran是當之無愧的性能之王,在本文的測試中可以看到Fortran代碼的效率是Rcpp的2倍、Julia的4倍、python的30倍、R語言的90倍。在for循環密集的代碼中,Fortran可以輕鬆達到R語言的200倍;(2)很多古老的、但專業上通用的模型採用Fortran語言編寫,翻譯成其他語言,人力所不能及。為何對接到R語言?
  • R數據科學--初見
    終於你跨越茫茫宇宙,來到生信星球,發現了初學者的新大陸前些天豆豆花花各入手一本學R必備的神書《R數據科學》,花花完結了零基礎入門R語言系列和ggplot系列。現在開始跟著這本書的思路走,仔細端詳R語言。如果你還不了解這本書,👇看這裡。
  • R語言學習路線和常用數據挖掘包
    對於初學R語言的人,最常見的方式是:遇到不會的地方,就跑到論壇上吼一嗓子,然後欣然or悲傷的離去,一直到遇到下一個問題再回來。那麼,眾多書籍中,一個生手應該從哪一本著手呢?入門之後如何才能把自己練就成某個方面的高手呢?相信這是很多人心中的疑問。有這種疑問的人有福了,因為筆者將根據自己的經歷總結一下R語言書籍的學習路線圖以使Ruser少走些彎路。本文分為6個部分,分別介紹初級入門,高級入門,繪圖與可視化,計量經濟學,時間序列分析,金融等。
  • RStudio|用R Markdown生成你的R語言數據分析報告
    個人公眾號:數據科學家養成記 (微信ID:louwill12)R Markadown 作為一款通過R語言創建動態文檔的寫作排版工具,為數據科學提供了現成的寫作框架。通過 R Markdown 不僅可以運行和保存R代碼,還可以生成高質量的數據分析報告並以HTML、PDF或者word的形式分享。
  • 30 天學會R DAY 15:tidyr包,數據整理另外一個利器
    第15天  tidyr包,R語言數據整理又一利器tidyr包 用來處理寬數據和長數據,用來進行字符串變量的拆分和合併
  • 掌握R語言for循環一文就夠了(認真臉)
    的行數,兩個for疊加的話,先固定第一個for r=1再執行下一個for,直到下一個for的r從1到100都執行完後再跳到第一個for r=2,再執行r從1到100,再r=3以此類推直到r=100,整個for循環就結束了。
  • R語言做深度學習
    他還從事深度學習研究,重點研究計算機視覺和機器學習在形式推理中的應用。他的論文曾在計算機視覺與模式識別(CVPR)、神經信息處理系統(NIPS)和學習代表國際會議等領域的重要會議上發表。作者的介紹翻譯自他寫的書籍《Deep Learning With Python》。
  • 全棧數據之R語言常用包和函數
    全棧數據之路系列:全棧數據之Linux常用命令總結全棧數據之MySQL常用命令總結全棧數據之Python常用工具和函數《R語言實戰》,這是高濤、肖楠等翻譯的一本書詳細全面介紹了入門、圖形、統計、回歸、方差、功效分析、廣義線性模型、主成分、因子分析
  • 【R知識】R語言apply函數族筆記
    現在我的看法傾向於,R不是一種通用型的程式語言,而是一種統計領域的軟體工具。因此,不能用通用型編程的思維來設計R代碼。在    Andrew Lim 關於R和Python的對比回答中,R是一種面向數組(array-oriented)的語法,它更像數學,方便科學家將數學公式轉化為R代碼。而Python是一種通用程式語言,更工程化。在使用R時,要儘量用array的方式思考,避免for循環。
  • R學習用R語言做分析(3)——統計分布
    2)同理,pnorm(0)是0.5就是正態分布的累計密度函數在0處的值。      3)而qnorm(0.5)則得到的是0,即標準正態分布在0.5處的分位數是0(在來個比較常用的:qnorm(0.975)就是那個估計中經常用到的1.96了)。      4)最後一個rnorm(n)則是按正態分布隨機產生n個數據。
  • 什麼是R語言
    首先介紹一本學習R語言的書,《R語言實戰》。原作者是業內大名鼎鼎的Quick-R網站創始人Robert I.
  • rPython:在R語言中調用python命令
    經常使用Python和R語言的人都知道,如果R中有某些功能Python不容易實現時,則可以安裝加載rpy2包,從而實現在python中調用R語言命令的功能
  • R語言:機器學習程序包
    2)遞歸拆分(Recursive Partitioning): 遞歸拆分利用樹形結構模型,來做回歸、分類和生存分析,主要在rpart包(http://cran.r-project.org/lasso2/index.html)和lars包(http://cran.r-project.org/web/packages/lars/index.html)可以執行參數受到某些限制的回歸模型。
  • R語言-安裝使用指南
    R語言 概述R語言是用於統計分析,圖形表示和報告的程式語言和軟體環境。