R語言-檢視變數及資料型態所佔記憶體容量,零成本提高計算效率

閱讀時間約 3 分鐘

原始文章


對資料科學家或數據分析師來說,資料量太大、電腦效能不足一直都是個痛,經常要小心翼翼地觀察記憶體使用率是不是快爆炸。然而,就我的觀察,一樣都是撰寫程式,資料科學工作者對於程式碼乾淨、易懂、高效率的追求似乎比其他工程師來得低。(或是我的樣本數不足,以偏概全)
其實,只要善用一些小工具,把檔案很大但用不到的物件清掉,並留意哪一種資料型態(Data Type)的容量較輕巧,就可以在不花錢升級電腦硬體的條件下,提升計算效率,也更有可能執行更複雜的計算。

來吧,直接複製貼上

check_file_size <- function(name){

size <- object.size(get(name))

# 4496535920 bytes = 4496 mb
if(size >= 1000000){
unit_size <- 1000000
unit <- "mb"
}else if(size >= 1000){
unit_size <- 1000
unit <- "kb"
}else{
unit_size <- 1
unit <- "byte"
}

size <- size / unit_size
size <- round(size)
cat(paste0(name, " ", size, " ", unit))
}

檢查資料型態(Data Type)的容量大小

# Compare Date and Number
> t1 <- Sys.Data()
> t2 <- 20200101
> check_file_size("t1", unit = "byte")
t1 256 byte
> check_file_size("t2",unit = "byte")
t2 48 byte

# Compare numeric and character for ID
> test <- as.numeric(870576)
> test2 <- as.character(870576)
> check_file_size("test", unit = "byte")
test 48 byte
> check_file_size("test2", unit = "byte")
test2 96 byte
為什麼會看到廣告
留言0
查看全部
發表第一個留言支持創作者!
雖然數據分析師是新職位,但數據分析或是資料分析的概念一點都不新。公司裡面行之有年的職位,不管是行銷、業務、採購、倉管,每個職位都需要數據,也都需要分析。隨著大數據、資料科學、機器學習、AI等酷炫的新名詞、新技術與新應用出現,所需的知識與技能多到員工爆肝也學不完。
在Python中使用MySQLdb的起手式大概長這樣。記得execute裡面的SQL語法一定要加上冒號,否則會出錯。我也在這個愚蠢的錯誤上跌倒過。編碼問題是資料庫管理中常見的問題,編碼包含又包含了兩個部份,collation和character set。
資料科學家、數據分析師是近幾年新興,而且熱門的職業,而DataCamp是一個專精於資料科學的程式教學網站。在實務上會用到的各種知識與程式技能,從流程面的網路爬蟲、數據清洗、資料視覺化,到技術面的Python、R語言、SQL,在DataCamp上幾乎都可以找到相關教學。
LinkedIn是專業導向的社群平台,許多公司和專業人士都會在上面分享最新消息與新知。只要你願意,你也可以透過LinkedIn傳訊息給比爾蓋茲。
如果每個人的人格特質都可以量化成「創作者」模式與「觀眾」模式,你的比例會是多少?20%創作者和80%觀眾?或是70%創作者和30%的觀眾?這個比例及自我認知相當重要,因為兩種模式代表著相當不同的生活方式。
如果拳腳棍棒你都不怕,你還怕老闆幹嘛? 格鬥具備一定的危險性,但這個危險性能夠鍛鍊我們的心理素質,不論在職場上、運動場上、人生賽場上都能有所幫助,讓我們面對壓力與挫折時能保持冷靜、勇敢、果決。
雖然數據分析師是新職位,但數據分析或是資料分析的概念一點都不新。公司裡面行之有年的職位,不管是行銷、業務、採購、倉管,每個職位都需要數據,也都需要分析。隨著大數據、資料科學、機器學習、AI等酷炫的新名詞、新技術與新應用出現,所需的知識與技能多到員工爆肝也學不完。
在Python中使用MySQLdb的起手式大概長這樣。記得execute裡面的SQL語法一定要加上冒號,否則會出錯。我也在這個愚蠢的錯誤上跌倒過。編碼問題是資料庫管理中常見的問題,編碼包含又包含了兩個部份,collation和character set。
資料科學家、數據分析師是近幾年新興,而且熱門的職業,而DataCamp是一個專精於資料科學的程式教學網站。在實務上會用到的各種知識與程式技能,從流程面的網路爬蟲、數據清洗、資料視覺化,到技術面的Python、R語言、SQL,在DataCamp上幾乎都可以找到相關教學。
LinkedIn是專業導向的社群平台,許多公司和專業人士都會在上面分享最新消息與新知。只要你願意,你也可以透過LinkedIn傳訊息給比爾蓋茲。
如果每個人的人格特質都可以量化成「創作者」模式與「觀眾」模式,你的比例會是多少?20%創作者和80%觀眾?或是70%創作者和30%的觀眾?這個比例及自我認知相當重要,因為兩種模式代表著相當不同的生活方式。
如果拳腳棍棒你都不怕,你還怕老闆幹嘛? 格鬥具備一定的危險性,但這個危險性能夠鍛鍊我們的心理素質,不論在職場上、運動場上、人生賽場上都能有所幫助,讓我們面對壓力與挫折時能保持冷靜、勇敢、果決。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
最近考完西文檢定,來整理一下我斷斷續續學語言的想法吧~我們先參考《CEFR歐洲共同語言參考標準》,今天的文章,我大概會常用到這個標準來形容語言程度;我的歐洲朋友們,寫履歷表的時候,也常用這套標準來描述自己的語言能力。 CEFR歐洲共同語言參考標準 以下我會說明幾個大項,文章有點長,有空慢慢看呀~
Thumbnail
好啦我知道拍很爛 好,先坦承這本書我還沒讀完,然後它的全名叫做《活出語言來:語言人類學導論》──我想這就不難理解為什麼我沒有讀完它了。因為它實際上是一本語言學專用的教材書,書的內容自然也較為學術,用字遣詞偏生硬,不過不至於難以理解。我相信只要是受過論述訓練的讀者都能很好適應它;不過即便如此,我還是很
Thumbnail
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
Thumbnail
「日本語」,更不消說,在中國上千年的漢字文明發展演變過程中源源流長。對於有「中文」基本能力的我們來說,可以運用「中文」的規律和特點更加容易地掌握「日語」。日本的文化型態和內涵,與漢文化同一源流,甚至同一表徵--「漢字」。「中文」與「日文」的「漢字」彼此交流、相互影響、交錯運用,輪番衍生出「漢字」……
Thumbnail
「韓語」,與「中文」的規律和特點相近,是藉由「中文」學習語言的其中一種,有「中文」基本底子和能力的我們可以運用「中文」的規律和特點來學會「韓語」。最有效的學習順序是「中文」->「日語」->「韓語」,3種語言的字形外觀、語意文義的排列組合同屬方塊字。
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
美國總統大選只剩下三天, 我們觀察一整週民調與金融市場的變化(包含賭局), 到本週五下午3:00前為止, 誰是美國總統幾乎大概可以猜到60-70%的機率, 本篇文章就是以大選結局為主軸來討論近期甚至到未來四年美股可能的改變
Thumbnail
Faker昨天真的太扯了,中國主播王多多點評的話更是精妙,分享給各位 王多多的點評 「Faker是我們的處境,他是LPL永遠繞不開的一個人和話題,所以我們特別渴望在決賽跟他相遇,去直面我們的處境。 我們曾經稱他為最高的山,最長的河,以為山海就是盡頭,可是Faker用他28歲的年齡...
Thumbnail
最近考完西文檢定,來整理一下我斷斷續續學語言的想法吧~我們先參考《CEFR歐洲共同語言參考標準》,今天的文章,我大概會常用到這個標準來形容語言程度;我的歐洲朋友們,寫履歷表的時候,也常用這套標準來描述自己的語言能力。 CEFR歐洲共同語言參考標準 以下我會說明幾個大項,文章有點長,有空慢慢看呀~
Thumbnail
好啦我知道拍很爛 好,先坦承這本書我還沒讀完,然後它的全名叫做《活出語言來:語言人類學導論》──我想這就不難理解為什麼我沒有讀完它了。因為它實際上是一本語言學專用的教材書,書的內容自然也較為學術,用字遣詞偏生硬,不過不至於難以理解。我相信只要是受過論述訓練的讀者都能很好適應它;不過即便如此,我還是很
Thumbnail
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
Thumbnail
「日本語」,更不消說,在中國上千年的漢字文明發展演變過程中源源流長。對於有「中文」基本能力的我們來說,可以運用「中文」的規律和特點更加容易地掌握「日語」。日本的文化型態和內涵,與漢文化同一源流,甚至同一表徵--「漢字」。「中文」與「日文」的「漢字」彼此交流、相互影響、交錯運用,輪番衍生出「漢字」……
Thumbnail
「韓語」,與「中文」的規律和特點相近,是藉由「中文」學習語言的其中一種,有「中文」基本底子和能力的我們可以運用「中文」的規律和特點來學會「韓語」。最有效的學習順序是「中文」->「日語」->「韓語」,3種語言的字形外觀、語意文義的排列組合同屬方塊字。