R03: 常用的基本功能R basic functions

更新於 發佈於 閱讀時間約 6 分鐘
raw-image

今天想跟大家介紹幾個R常用的功能,我並不打算像R的教學書籍一步一步的系統性教學,因為要求系統性教學,我會花太多時間在準備教程,讓這個R的教學太正式,失去了blog的感覺,反而帶給大家太多壓力,所以你可能覺得我的文章很跳躍,的確是這樣沒錯,但是寫程式重點在於,善用網上資源,跟程式撰寫的邏輯養成,而我的任務不會著重在這兩個部分,而是讓你看到R可以做什麼事情,去引發你自我學習R的企圖心,當然在這系列文章中,還是有一些教學的脈絡,但是那不是我寫文章的初衷,而我的初衷是要引發你的興趣。

第一個我想講的是怎麼產生隨機數,這個為什麼很重要呢?當你要在ptt/stackoverflow 上問問題時,大家通常都會要你提供樣本數據,以供測試,又或者在你寫程式的時候,你需要測試scripts,如果手邊沒有實際數據可以測試,我通常會使用亂數產生的數據,亂數產生的functions包含runif()、sample()、rnorm()等等。

這邊先來看看runif 跟sample的使用辦法,我下面的寫法為從1到100隨機取十個數,

> runif(10,1,100)
[1] 34.84857 64.58274 16.50319 22.58514 37.36246 34.97631 19.54502 65.30065 17.61412 72.37462
#只取整數的寫法
> floor(runif(10,1,101))
[1] 94 55 27 76 15 4 36 100 13 10
> sample(1:100,10)
[1] 28 13 1 78 68 18 10 43 67 38
#如果想要你的隨機可以被重複的話使用 set.seed(x) x 為隨意整數
> set.seed(5)
> runif(10,1,100)
[1] 20.82123 68.83664 91.77070 29.15555 11.36036 70.40469 53.26804 80.98558 95.69351 11.93485
> set.seed(5)
> floor(runif(10,1,101))
[1] 21 69 92 29 11 71 53 81 96 12

第二種方法是隨機取數但數列平均為X標準差為Y

> rnorm(10)
[1] 0.0894771 1.6267513 -1.3325510 0.7343093 1.8798380 0.2859744 -0.5899226 -0.2248598 -2.1197585 0.5481381
#默認X = 0, y = 1
> rnorm(10, 1, 0.5)
[1] 0.4587659 1.3565658 0.8681169 0.9135287 -0.1811799 1.5290381 1.0060021 0.7302146 0.6065974 1.1954373

通常這兩個functions你可以也寫出大部分的隨機數列了,最後一個我沒提到的就是rbinom相關的幾個functions讓你自己去體驗了。

> library(ggplot2)
> us_states <- map_data("state")
> dim(us_states) #look data dimension
[1] 15537 6
> colnames(us_states) #look colnames
[1] "long" "lat" "group" "order" "region" "subregion"
> nrow(us_states) #look number of observations
[1] 15537
> ncol(us_states) #look number of vairables
[1] 6
> summary(us_states$lat) #look summary of latitude
Min. 1st Qu. Median Mean 3rd Qu. Max.
25.13 33.91 38.18 38.18 42.80 49.38

第二個我覺得比較重要的是你要怎麼summary的你數據,下面我是用美國polygon的數據來作例子,做nrow的部分是有時候loop over我們的數據,我們之後會講迴圈啦,這邊只是簡單提一下,你就可以很簡單loop over數據了。

for(i in 1:nrow(df)){
AAAA
BBBB
}

再來是summary的部分包含有最小值,25%,50%,平均值,75%,最大值的數據,如果有missing 或是 NA他也會顯出來有幾個NA的數據,非常好用的功能。

本來是還想講其他功能,不過最近真的好累,每個星期工作量雖然沒有太大增加,但是客戶很機巴,壓力變很大,加上都沒什麼社交活動每天只能面對老婆跟小屁孩,腦袋還是不要讓它過熱好了!

感覺上歐美第二波疫情好像開始了,如果你在台灣那恭喜你,台灣目前應該是全世界最安全的國家,如果你不在台灣,還是要注意社交距離,減少暴露在人群擁擠的狀況下,但不論你在哪邊戴口罩一定是必須的,以公衛的角度來看,戴口罩是目前最好的手段能減少中共病毒擴散卻又能保持社會一定運作。

raw-image


留言
avatar-img
留言分享你的想法!
avatar-img
Jiaoyan Huang的沙龍
15會員
33內容數
小黃在美國生活十幾年,累積累積一堆生活上,研究所修課,找工作,工作上相關的資訊,我盡我所能跟大家分享,也希望聽見大家的反饋,Little Yellow in USA (LYUSA)
Jiaoyan Huang的沙龍的其他內容
2020/07/15
我們上次提到怎麼安裝R,跟packages,我發現在剛學程式語言或是數據分析的時候,大部分的人學了一點基礎之後,都會想直接輸入數據,開始自己動手做,但是對於沒嘗試過programming的人來說,即便使用了IDE,第一個小障礙會是怎麼把不同數據輸入程式之中,好在R或者Rstudio要做這件事情十分方
2020/07/15
我們上次提到怎麼安裝R,跟packages,我發現在剛學程式語言或是數據分析的時候,大部分的人學了一點基礎之後,都會想直接輸入數據,開始自己動手做,但是對於沒嘗試過programming的人來說,即便使用了IDE,第一個小障礙會是怎麼把不同數據輸入程式之中,好在R或者Rstudio要做這件事情十分方
2020/05/31
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
Thumbnail
2020/05/31
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
Thumbnail
2020/03/28
近期因為新冠狀病毒(中國共產黨病毒)肆虐,全球開始大規模在家工作(Work from home, WFH)的趨勢,剛好可以來聊聊我電腦中比較有用的程式或是網頁。 第一個當然就是AnyConnect VPN(Cisco),主要是用來連結家裡電腦跟公司網路,並可以使用公司網路裡面有的檔案位置等等。
Thumbnail
2020/03/28
近期因為新冠狀病毒(中國共產黨病毒)肆虐,全球開始大規模在家工作(Work from home, WFH)的趨勢,剛好可以來聊聊我電腦中比較有用的程式或是網頁。 第一個當然就是AnyConnect VPN(Cisco),主要是用來連結家裡電腦跟公司網路,並可以使用公司網路裡面有的檔案位置等等。
Thumbnail
看更多
你可能也想看
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
「欸!這是在哪裡買的?求連結 🥺」 誰叫你太有品味,一發就讓大家跟著剁手手? 讓你回購再回購的生活好物,是時候該介紹出場了吧! 「開箱你的美好生活」現正召喚各路好物的開箱使者 🤩
Thumbnail
在進行多層次線性模型(MLM)當中,有時候我們不只會加入層次1的預測變項。我們也會想加入層次2預測變項。本文將介紹加入層次2預測變項的各種模型,並解釋其公式和R語言操作方法。因為內容比較多,所以篇幅比較長。 多層次線性模型(MLM),截距是表示所有學校的平均值。斜率是指模型中自變量的係數,表
Thumbnail
在進行多層次線性模型(MLM)當中,有時候我們不只會加入層次1的預測變項。我們也會想加入層次2預測變項。本文將介紹加入層次2預測變項的各種模型,並解釋其公式和R語言操作方法。因為內容比較多,所以篇幅比較長。 多層次線性模型(MLM),截距是表示所有學校的平均值。斜率是指模型中自變量的係數,表
Thumbnail
本篇將帶你學習 Python 的基本語法和資料型態。我們將從變數和資料型態開始,包括整數、浮點數、字串和布林值。接著,我們將探討輸入和輸出的方法,讓你能夠與使用者進行互動。最後,我們會介紹基本運算符和運算子,以進行數值計算。通過這些學習筆記,你將輕鬆掌握 Python 的基礎知識,讓我們開始吧!
Thumbnail
本篇將帶你學習 Python 的基本語法和資料型態。我們將從變數和資料型態開始,包括整數、浮點數、字串和布林值。接著,我們將探討輸入和輸出的方法,讓你能夠與使用者進行互動。最後,我們會介紹基本運算符和運算子,以進行數值計算。通過這些學習筆記,你將輕鬆掌握 Python 的基礎知識,讓我們開始吧!
Thumbnail
初學GGplot2的時候,一直很希望有一種懶人模板,告訴我什麼指令會控制什麼就好,這樣我就複製貼上然後改一改就行了。 雖然距離摸熟GGplot還差得遠,但希望這些留下摸索的紀錄。 如果可以節省到誰的時間那就太好了。
Thumbnail
初學GGplot2的時候,一直很希望有一種懶人模板,告訴我什麼指令會控制什麼就好,這樣我就複製貼上然後改一改就行了。 雖然距離摸熟GGplot還差得遠,但希望這些留下摸索的紀錄。 如果可以節省到誰的時間那就太好了。
Thumbnail
在Rstudio中對於需要較多字元表示的數值,如:123000000、0.000000123,都會改用科學記號表示,如下圖: 此情況可透過 對於scipen可以等於99或999都可以,可當作顯示字元的上限,結果如下圖 因此,若想回到原本的設定,可透過 基本上數值的設定很少會調用,通常都是在圖表呈現上
Thumbnail
在Rstudio中對於需要較多字元表示的數值,如:123000000、0.000000123,都會改用科學記號表示,如下圖: 此情況可透過 對於scipen可以等於99或999都可以,可當作顯示字元的上限,結果如下圖 因此,若想回到原本的設定,可透過 基本上數值的設定很少會調用,通常都是在圖表呈現上
Thumbnail
Google 試算表還有一個花括號 { } 的參照方法,可以參照範圍。學會的話,對處理大量資料有很多好處!我們來看看怎麼用 { } 來處理吃資料吧。
Thumbnail
Google 試算表還有一個花括號 { } 的參照方法,可以參照範圍。學會的話,對處理大量資料有很多好處!我們來看看怎麼用 { } 來處理吃資料吧。
Thumbnail
快速找到資料中最大的數字(最大值)和最小的數字(最小值),只要三秒鐘!或許比你想像中還要簡單!
Thumbnail
快速找到資料中最大的數字(最大值)和最小的數字(最小值),只要三秒鐘!或許比你想像中還要簡單!
Thumbnail
最近因為輸入資料節省時間跟正確性的需求, 去查了Excel的函數運算怎麼用, 花了大概10分鐘查資料看教學影片, 試了兩三次就成功了~ 現在來分享一下我這次學到的函數。 由於工作上的需求, 需要從一堆數值裡面篩選出範圍內的數量, 但因為數量有點大,我又有點懶惰(其實不只有點), 步驟一:輸入關鍵字
Thumbnail
最近因為輸入資料節省時間跟正確性的需求, 去查了Excel的函數運算怎麼用, 花了大概10分鐘查資料看教學影片, 試了兩三次就成功了~ 現在來分享一下我這次學到的函數。 由於工作上的需求, 需要從一堆數值裡面篩選出範圍內的數量, 但因為數量有點大,我又有點懶惰(其實不只有點), 步驟一:輸入關鍵字
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News