R02:怎麼輸入資料

閱讀時間約 6 分鐘
我們上次提到怎麼安裝R,跟packages,我發現在剛學程式語言或是數據分析的時候,大部分的人學了一點基礎之後,都會想直接輸入數據,開始自己動手做,但是對於沒嘗試過programming的人來說,即便使用了IDE,第一個小障礙會是怎麼把不同數據輸入程式之中,好在R或者Rstudio要做這件事情十分方便,我今天想跟大家分享怎麼會入5種我常用的數據格式。影片的話我可能要等到周末才有空拍,先把Medium的文稿寫出來囉。我下面說這些東西其實stackoverflow或是基礎R教學一定都查得到,但是如果你是剛好看其他文章進來,又剛好想學R,那繼續看下去就對了。
在說怎麼輸入資料之前,我假設大家都是剛接觸R,先講一下怎麼指定檔案:
先假設檔案在我的Documents資料夾下,如果你使用linux base的機器不會有這個問題,但是如果使用window,你打開資料夾之後,通常去複製路徑會得到C:\Users\jhuang\Documents,但是要注意R的路徑呈現必須要相反方向,請看下面,target會是你的檔案,例如XXX.xlsx或者XXX.csv。
> path <- "C:/Users/jhuang/Documents"
> file <- sprintf("%s/target",path)
在這邊使用了一個sprintf的功能(function),你可以在R的指令列打?sprintf在右下角的那個help panel會告訴你sprintf怎麼使用,簡單來說,%s你會去替換的變數,這時候你file會得到整串檔案的位置,例如
> file
[1] "C:/Users/jhuang/Documents/target"
你當然也可以舉一反三增加多個變數。接下來就是要教你怎麼會入資料。
  • 大家最常使用的excel
一般來說,大部分的人最常使用readxl這個package來讀excel檔,所以最簡單的寫法應該是這樣
> path <- "C:/Users/jhuang/Documents"
> file <- sprintf("%s/target",path)
> library(readxl)
> data <- read_excel(file, sheet = "Sheet1", skip = 1, col_types = "numeric")
常用的option大概是這幾個sheet,你可以用數字指定第幾個sheet,或是直接給sheet的名字用引號包起來,skip就是你一開始想跳過幾列(row),col_types/col_name是可以指定每一行(column)的名稱跟型態。你如果想知道更詳細的說明就去點上面的連結。
  • csv, comma-separated values 檔案
第二種常見檔案是csv檔案,本身R就帶有read.csv可以使用,但是如過數據較大,read.csv的閱讀速度會很慢,寫法應該是這樣
> path <- "C:/Users/jhuang/Documents"
> file <- sprintf("%s/target",path)
> data <- read.csv(file,skip = 1, stringsAsFactors = F)
這邊skip用法一樣,介紹另外一個option,stringsAsFactors這會使得你在表中的文字(string)在輸入的過程中不會變成factor,其會造成初學者在處裡數據的複雜度。但是我剛說了read.csv很慢,那有沒有比較快的方法?有的,我會推薦read.table跟fread,我給大家參考網站,盡量自己去試試看,多寫才是你寫程式技巧進步的唯一方法,如果有任何問題,在下面留言我會盡量回答你。
  • text 或者 acsii 檔案
再來就處理純文字檔的部分,我本身沒有在R上面使用任何中文輸出輸入,如果有需要你可以到PTT去看怎麼使用中文優化。我本身是比較喜歡使用readLines,他的寫法其是跟上面沒有差多少,但是有多一個功能,你要讀幾列,你也可以用迴圈去寫出line by line的功能,這邊嘗試一個範例:
> path <- "C:/Users/jhuang/Documents"
> file <- sprintf("%s/target",path)
> data <- readLines(file,skip = 1, n = 100)
這就是說跳過第一列,然後連續讀一百列的數據。
  • netcdf 檔案
netcdf是氣象或是大氣科學家比較常用到的檔案,特色是如果某一個的數據是零他是不占空間,可以在多維度展開你的數據呈現,譬如像(x,y,z,t),去撿小檔案的大小。netcdf目前比較常用的是ncdf4,我們來看看怎麼使用吧:
> path <- "C:/Users/jhuang/Documents"
> file <- sprintf("%s/target",path)
> library(ncdf4)
> ncin <- nc_open(file) #import netcdf file
> LAT <- ncvar_get(ncin,"LAT") #use ncvar_get to extract LAT #variable from file
ncdf4的使用比較複雜,他的function比較多,加上數據結構也比較複雜,我之後有空要另外寫一篇文章,如果你非常需要學習怎麼使用R去輸入netcdf,直接留言,我會想辦法跟你聯絡。
  • 最後是RData
其實這個沒甚麼好講的就使用load,當你load之後,會在global environment得到別人寄給你的完整RData裡面的數據。
> path <- "C:/Users/jhuang/Documents"
> file <- sprintf("%s/target",path)
> load(file)
用文字書寫來做R教學果然難度不低,我盡量將簡單的部分加進去先,慢慢在擴充進階的使用。
為什麼會看到廣告
avatar-img
16會員
33內容數
小黃在美國生活十幾年,累積累積一堆生活上,研究所修課,找工作,工作上相關的資訊,我盡我所能跟大家分享,也希望聽見大家的反饋,Little Yellow in USA (LYUSA)
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Jiaoyan Huang的沙龍 的其他內容
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
近期因為新冠狀病毒(中國共產黨病毒)肆虐,全球開始大規模在家工作(Work from home, WFH)的趨勢,剛好可以來聊聊我電腦中比較有用的程式或是網頁。 第一個當然就是AnyConnect VPN(Cisco),主要是用來連結家裡電腦跟公司網路,並可以使用公司網路裡面有的檔案位置等等。
先註明文章中的產品都是我自己用過推薦,沒有任何業配。 小孩子1–3歲的花費,在這邊是想用行住衣食育樂的順序來討論比較簡單
很多人都說美國生小孩很貴,這個話並不完全正確,生小孩的花費完全取決於你的保險、孕婦跟小孩的狀況,大部分人都有一個印象美國醫療花費不是那麼透明,而在生產的這件事情上,初為人父母的緊張常常造成對於醫療花費的無所適從,尤其事關小孩跟母親,我們通常只能做很侷限的選擇;重要的話先說在前面,打算要生小孩的前一
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
近期因為新冠狀病毒(中國共產黨病毒)肆虐,全球開始大規模在家工作(Work from home, WFH)的趨勢,剛好可以來聊聊我電腦中比較有用的程式或是網頁。 第一個當然就是AnyConnect VPN(Cisco),主要是用來連結家裡電腦跟公司網路,並可以使用公司網路裡面有的檔案位置等等。
先註明文章中的產品都是我自己用過推薦,沒有任何業配。 小孩子1–3歲的花費,在這邊是想用行住衣食育樂的順序來討論比較簡單
很多人都說美國生小孩很貴,這個話並不完全正確,生小孩的花費完全取決於你的保險、孕婦跟小孩的狀況,大部分人都有一個印象美國醫療花費不是那麼透明,而在生產的這件事情上,初為人父母的緊張常常造成對於醫療花費的無所適從,尤其事關小孩跟母親,我們通常只能做很侷限的選擇;重要的話先說在前面,打算要生小孩的前一
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
2024.06.20(四) 第 59 集 【如虎添翼 第十二週 第 59 集】 ﹝家中須有妻?﹞ ─ 此生無憾 ─
Thumbnail
2023名古屋AOK講習會筆記·六 進場 搭箭 取懸與打起的時機 回箭 退場
Thumbnail
霉女來到象山捷運站,蒐集周邊的特色公園、免爬山的賞櫻的地點、象山登山步道,旅程分享蒐集四獸山的經驗和注意事項。這是一個在大臺北城生活的黴女,展開捷運印章圖樣的個人生活企劃!
Thumbnail
Hi there,近期我被吳卓源 Julia 在去年釋出的〈the one〉(2022) 燒到不行!它來自 Julia 的新專輯《IDFK》(2022)。〈the one〉是他專輯的第三波主打,其實一開始我就很想寫這首歌了,不過看 Julia 在各大螢光幕的動向,感覺很有可能會出 MV,所以
Thumbnail
Hi there,距離第一張專輯已經好久的 SZA,終於在今年結束之前釋出了他的第二張個人專輯《SOS》(2022),並且在專輯發行的第一週就強勢空降美國 Billboard 200 專輯榜的冠軍,並且也在 Spotify 的串流方面也有很驚人的數據,可以說這次的專輯效應非常成功啊,在聖誕節
Thumbnail
在Rstudio中對於需要較多字元表示的數值,如:123000000、0.000000123,都會改用科學記號表示,如下圖: 此情況可透過 對於scipen可以等於99或999都可以,可當作顯示字元的上限,結果如下圖 因此,若想回到原本的設定,可透過 基本上數值的設定很少會調用,通常都是在圖表呈現上
20221106 今天有吃素麻油雞面。覺得頭髮好麻煩,乾脆理一理,不用吹頭髮。自從來這裡之後,就開始吃素了,快三個月的時間了。身邊的人都希望我出家,但我只是不知道自己能幹嘛而已 ,他們甚至一直說我有善根,但我只是裝成他們想看的樣子。做為一個從小就在宗教熏陶之下長大的孩子,好像我不去信仰他們的宗教我就
Thumbnail
  書送到的那天,迫不及待地開始翻閱。   但,看書速度一向超快的我,才看了第一頁,真正遇到難關。   書籍比我以為的要艱深許多,太多的研究、太多的專有名詞。以至於花了好幾天,才勉強讀了三個章節。弄了半天還在認識基礎知識,根本還沒到「怎麼實行」這件事。4+2
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
2024.06.20(四) 第 59 集 【如虎添翼 第十二週 第 59 集】 ﹝家中須有妻?﹞ ─ 此生無憾 ─
Thumbnail
2023名古屋AOK講習會筆記·六 進場 搭箭 取懸與打起的時機 回箭 退場
Thumbnail
霉女來到象山捷運站,蒐集周邊的特色公園、免爬山的賞櫻的地點、象山登山步道,旅程分享蒐集四獸山的經驗和注意事項。這是一個在大臺北城生活的黴女,展開捷運印章圖樣的個人生活企劃!
Thumbnail
Hi there,近期我被吳卓源 Julia 在去年釋出的〈the one〉(2022) 燒到不行!它來自 Julia 的新專輯《IDFK》(2022)。〈the one〉是他專輯的第三波主打,其實一開始我就很想寫這首歌了,不過看 Julia 在各大螢光幕的動向,感覺很有可能會出 MV,所以
Thumbnail
Hi there,距離第一張專輯已經好久的 SZA,終於在今年結束之前釋出了他的第二張個人專輯《SOS》(2022),並且在專輯發行的第一週就強勢空降美國 Billboard 200 專輯榜的冠軍,並且也在 Spotify 的串流方面也有很驚人的數據,可以說這次的專輯效應非常成功啊,在聖誕節
Thumbnail
在Rstudio中對於需要較多字元表示的數值,如:123000000、0.000000123,都會改用科學記號表示,如下圖: 此情況可透過 對於scipen可以等於99或999都可以,可當作顯示字元的上限,結果如下圖 因此,若想回到原本的設定,可透過 基本上數值的設定很少會調用,通常都是在圖表呈現上
20221106 今天有吃素麻油雞面。覺得頭髮好麻煩,乾脆理一理,不用吹頭髮。自從來這裡之後,就開始吃素了,快三個月的時間了。身邊的人都希望我出家,但我只是不知道自己能幹嘛而已 ,他們甚至一直說我有善根,但我只是裝成他們想看的樣子。做為一個從小就在宗教熏陶之下長大的孩子,好像我不去信仰他們的宗教我就
Thumbnail
  書送到的那天,迫不及待地開始翻閱。   但,看書速度一向超快的我,才看了第一頁,真正遇到難關。   書籍比我以為的要艱深許多,太多的研究、太多的專有名詞。以至於花了好幾天,才勉強讀了三個章節。弄了半天還在認識基礎知識,根本還沒到「怎麼實行」這件事。4+2