第二天 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") #產生數據,數據名為x2R語言也可以不用 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天」即可)