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

更新於 發佈於 閱讀時間約 5 分鐘

今天想跟大家介紹幾個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的數據,非常好用的功能。
本來是還想講其他功能,不過最近真的好累,每個星期工作量雖然沒有太大增加,但是客戶很機巴,壓力變很大,加上都沒什麼社交活動每天只能面對老婆跟小屁孩,腦袋還是不要讓它過熱好了!
感覺上歐美第二波疫情好像開始了,如果你在台灣那恭喜你,台灣目前應該是全世界最安全的國家,如果你不在台灣,還是要注意社交距離,減少暴露在人群擁擠的狀況下,但不論你在哪邊戴口罩一定是必須的,以公衛的角度來看,戴口罩是目前最好的手段能減少中共病毒擴散卻又能保持社會一定運作。

為什麼會看到廣告
avatar-img
16會員
33內容數
小黃在美國生活十幾年,累積累積一堆生活上,研究所修課,找工作,工作上相關的資訊,我盡我所能跟大家分享,也希望聽見大家的反饋,Little Yellow in USA (LYUSA)
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Jiaoyan Huang的沙龍 的其他內容
我們上次提到怎麼安裝R,跟packages,我發現在剛學程式語言或是數據分析的時候,大部分的人學了一點基礎之後,都會想直接輸入數據,開始自己動手做,但是對於沒嘗試過programming的人來說,即便使用了IDE,第一個小障礙會是怎麼把不同數據輸入程式之中,好在R或者Rstudio要做這件事情十分方
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
近期因為新冠狀病毒(中國共產黨病毒)肆虐,全球開始大規模在家工作(Work from home, WFH)的趨勢,剛好可以來聊聊我電腦中比較有用的程式或是網頁。 第一個當然就是AnyConnect VPN(Cisco),主要是用來連結家裡電腦跟公司網路,並可以使用公司網路裡面有的檔案位置等等。
先註明文章中的產品都是我自己用過推薦,沒有任何業配。 小孩子1–3歲的花費,在這邊是想用行住衣食育樂的順序來討論比較簡單
很多人都說美國生小孩很貴,這個話並不完全正確,生小孩的花費完全取決於你的保險、孕婦跟小孩的狀況,大部分人都有一個印象美國醫療花費不是那麼透明,而在生產的這件事情上,初為人父母的緊張常常造成對於醫療花費的無所適從,尤其事關小孩跟母親,我們通常只能做很侷限的選擇;重要的話先說在前面,打算要生小孩的前一
我們上次提到怎麼安裝R,跟packages,我發現在剛學程式語言或是數據分析的時候,大部分的人學了一點基礎之後,都會想直接輸入數據,開始自己動手做,但是對於沒嘗試過programming的人來說,即便使用了IDE,第一個小障礙會是怎麼把不同數據輸入程式之中,好在R或者Rstudio要做這件事情十分方
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
近期因為新冠狀病毒(中國共產黨病毒)肆虐,全球開始大規模在家工作(Work from home, WFH)的趨勢,剛好可以來聊聊我電腦中比較有用的程式或是網頁。 第一個當然就是AnyConnect VPN(Cisco),主要是用來連結家裡電腦跟公司網路,並可以使用公司網路裡面有的檔案位置等等。
先註明文章中的產品都是我自己用過推薦,沒有任何業配。 小孩子1–3歲的花費,在這邊是想用行住衣食育樂的順序來討論比較簡單
很多人都說美國生小孩很貴,這個話並不完全正確,生小孩的花費完全取決於你的保險、孕婦跟小孩的狀況,大部分人都有一個印象美國醫療花費不是那麼透明,而在生產的這件事情上,初為人父母的緊張常常造成對於醫療花費的無所適從,尤其事關小孩跟母親,我們通常只能做很侷限的選擇;重要的話先說在前面,打算要生小孩的前一
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在進行多層次線性模型(MLM)當中,有時候我們不只會加入層次1的預測變項。我們也會想加入層次2預測變項。本文將介紹加入層次2預測變項的各種模型,並解釋其公式和R語言操作方法。因為內容比較多,所以篇幅比較長。 多層次線性模型(MLM),截距是表示所有學校的平均值。斜率是指模型中自變量的係數,表
Thumbnail
這一節介紹使用accept-reject algorithm來產生符合特定機率分布的亂數,使得random walker具備Lévy flight的能力。
Thumbnail
這一節的標題是0.4 A Normal Distribution of Random Numbers,介紹常態分布的基本概念,以及相關亂數產生器的使用方法與應用方式。
Thumbnail
在模擬自然界中的事物時導入隨機性,可以讓結果看起來比較自然,但如果導入的隨機性都是uniform distribution,那未免也太呆板了。這時候,我們需要nonuniform distribution亂數,來讓模擬出來的結果,更像真的一樣。
隨機漫步看似簡單,但卻是模擬許多自然界現象的基礎,相關的觀念及程式實作方式,對於瞭解亂數、機率、Perlin noise等工具,會有相當大的幫助。
在這一章中,會透過介紹在螢幕上模擬物體移動時,其背後的原理與實作方法,來介紹亂數(random number)、隨機分布(random distribution)、Perlin noise等,這些可以用來引入隨機性的工具。
Thumbnail
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
  前面說明了所謂「假設檢定」的邏輯,也就是推論統計的基礎。但前面都還只是概念的階段,目前沒有真正進行任何的操作──還沒有提到推論統計的技術。   這篇其實有點像是一個過渡,是將前面的概念銜接到下一篇t分數之間的過程,也可以說是稍微解釋一下t檢定怎麼發展出來的。
Thumbnail
  在上一篇文章解釋了常態分布怎麼幫助我們計算事件發生的機率,而更之前也看過了抽樣分布是如何形成常態分布的過程,現在就要利用這兩件事情來慢慢帶出什麼是統計學中的「假設檢定」了。
Thumbnail
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
在進行多層次線性模型(MLM)當中,有時候我們不只會加入層次1的預測變項。我們也會想加入層次2預測變項。本文將介紹加入層次2預測變項的各種模型,並解釋其公式和R語言操作方法。因為內容比較多,所以篇幅比較長。 多層次線性模型(MLM),截距是表示所有學校的平均值。斜率是指模型中自變量的係數,表
Thumbnail
這一節介紹使用accept-reject algorithm來產生符合特定機率分布的亂數,使得random walker具備Lévy flight的能力。
Thumbnail
這一節的標題是0.4 A Normal Distribution of Random Numbers,介紹常態分布的基本概念,以及相關亂數產生器的使用方法與應用方式。
Thumbnail
在模擬自然界中的事物時導入隨機性,可以讓結果看起來比較自然,但如果導入的隨機性都是uniform distribution,那未免也太呆板了。這時候,我們需要nonuniform distribution亂數,來讓模擬出來的結果,更像真的一樣。
隨機漫步看似簡單,但卻是模擬許多自然界現象的基礎,相關的觀念及程式實作方式,對於瞭解亂數、機率、Perlin noise等工具,會有相當大的幫助。
在這一章中,會透過介紹在螢幕上模擬物體移動時,其背後的原理與實作方法,來介紹亂數(random number)、隨機分布(random distribution)、Perlin noise等,這些可以用來引入隨機性的工具。
Thumbnail
C 語言的函式庫定義了許多好用的函式,在寫 C++ 的時候可以拿來用。這是因為 C++ 當初在設計的時候,就有刻意把 C 涵蓋進來。 基本用法 首先要導入 C 語言的標準函式庫: #include <cstdlib> 以 c 作為開頭表示它是 C 語言的函式庫,只是被我們拿來 C++ 的程式
Thumbnail
  前面說明了所謂「假設檢定」的邏輯,也就是推論統計的基礎。但前面都還只是概念的階段,目前沒有真正進行任何的操作──還沒有提到推論統計的技術。   這篇其實有點像是一個過渡,是將前面的概念銜接到下一篇t分數之間的過程,也可以說是稍微解釋一下t檢定怎麼發展出來的。
Thumbnail
  在上一篇文章解釋了常態分布怎麼幫助我們計算事件發生的機率,而更之前也看過了抽樣分布是如何形成常態分布的過程,現在就要利用這兩件事情來慢慢帶出什麼是統計學中的「假設檢定」了。
Thumbnail
Python 提供了一個功能豐富的標準函式庫,其中 random 專門用於生成隨機數。本文將介紹 random 的基本介紹,以及函式應用。