R02:怎麼輸入資料

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

我們上次提到怎麼安裝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
留言分享你的想法!
avatar-img
Jiaoyan Huang的沙龍
15會員
33內容數
小黃在美國生活十幾年,累積累積一堆生活上,研究所修課,找工作,工作上相關的資訊,我盡我所能跟大家分享,也希望聽見大家的反饋,Little Yellow in USA (LYUSA)
Jiaoyan Huang的沙龍的其他內容
2020/09/27
今天想跟大家介紹幾個R常用的功能,我並不打算像R的教學書籍一步一步的系統性教學,因為要求系統性教學,我會花太多時間在準備教程,讓這個R的教學太正式,失去了blog的感覺,反而帶給大家太多壓力,所以你可能覺得我的文章很跳躍,的確是這樣沒錯,但是寫程式重點在於,善用網上資源,跟程式撰寫的邏輯養成,而
Thumbnail
2020/09/27
今天想跟大家介紹幾個R常用的功能,我並不打算像R的教學書籍一步一步的系統性教學,因為要求系統性教學,我會花太多時間在準備教程,讓這個R的教學太正式,失去了blog的感覺,反而帶給大家太多壓力,所以你可能覺得我的文章很跳躍,的確是這樣沒錯,但是寫程式重點在於,善用網上資源,跟程式撰寫的邏輯養成,而
Thumbnail
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
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
大家好,我是一名眼科醫師,也是一位孩子的媽 身為眼科醫師的我,我知道視力發展對孩子來說有多關鍵。 每到開學季時,診間便充斥著許多憂心忡忡的家屬。近年來看診中,兒童提早近視、眼睛疲勞的案例明顯增加,除了3C使用過度,最常被忽略的,就是照明品質。 然而作為一位媽媽,孩子能在安全、舒適的環境
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
我的「媽」呀! 母親節即將到來,vocus 邀請你寫下屬於你的「媽」故事——不管是紀錄爆笑的日常,或是一直想對她表達的感謝,又或者,是你這輩子最想聽她說出的一句話。 也歡迎你曬出合照,分享照片背後的點點滴滴 ♥️ 透過創作,將這份情感表達出來吧!🥹
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
專案產生大量又瑣碎的作業做處理,眼下要從iReport的設定檔(jrxml)擷取每一項套印參數出來,提供給別人做Excel公式的資料表進行作業。
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
檔案存取 路徑與檔案處理是很常用的功能,他們可以獨立運作,但是常常搭配一起使用,如果你處理的檔案是在當下的目錄,可以不需要使用路徑的功能單獨讀寫檔案,如果是想要做一些資料夾的管理,就需要理解路徑和檔案之間的關係。
Thumbnail
R語言是一種統計學與資料科學領域的程式語言,具有強大的統計分析和資料處理功能。本文介紹R語言在統計常見的基本語法,包含:安裝和執行套件、載入和查看資料、基本敘述統計函式、輸出資料、輸出檔案和遺失值。
Thumbnail
R語言是一種統計學與資料科學領域的程式語言,具有強大的統計分析和資料處理功能。本文介紹R語言在統計常見的基本語法,包含:安裝和執行套件、載入和查看資料、基本敘述統計函式、輸出資料、輸出檔案和遺失值。
Thumbnail
在這篇文章中,我將簡要介紹如何使用Python來處理文件,包括如何打開、讀取、寫入和關閉文件。我也會給出一些範例程式碼和註解,讓你更容易理解和學習。要打開一個文件,我們需要使用open()函數,它接受文件名稱和模式兩個參數。文件名稱是一個字串,表示要訪問的文件的路徑和名稱。
Thumbnail
在這篇文章中,我將簡要介紹如何使用Python來處理文件,包括如何打開、讀取、寫入和關閉文件。我也會給出一些範例程式碼和註解,讓你更容易理解和學習。要打開一個文件,我們需要使用open()函數,它接受文件名稱和模式兩個參數。文件名稱是一個字串,表示要訪問的文件的路徑和名稱。
Thumbnail
本文以圖片步驟化方式,介紹如何將CSV、Excel 、SAV檔案或是文字檔案資料檔匯入SPSS 20版本。
Thumbnail
本文以圖片步驟化方式,介紹如何將CSV、Excel 、SAV檔案或是文字檔案資料檔匯入SPSS 20版本。
Thumbnail
在上一篇的文章中,我們提到關於開啟CSV文件的方式,從單純的當作純文字文件開啟,到引入Python內建的csv模組對CSV類型的檔案做基本的讀寫操作,在這篇文章中,我們將再進一步使用Pandas這套強大的工具,來簡化CSV文件處理的流程。
Thumbnail
在上一篇的文章中,我們提到關於開啟CSV文件的方式,從單純的當作純文字文件開啟,到引入Python內建的csv模組對CSV類型的檔案做基本的讀寫操作,在這篇文章中,我們將再進一步使用Pandas這套強大的工具,來簡化CSV文件處理的流程。
Thumbnail
到目前為止,我們都還是在附檔名為.py的Python檔案執行程式碼,當程式需要與外部的檔案互動,例如讀取文字、表格、或是影像來做分析,或是把程式執行的結果儲存下來,就需要能夠存取外部的檔案。例如,在上一節中,當貪食蛇遊戲結束之後,隨著程式停止執行,該次的分數也就被丟棄,若能將分數記錄下來,下次遊戲開
Thumbnail
到目前為止,我們都還是在附檔名為.py的Python檔案執行程式碼,當程式需要與外部的檔案互動,例如讀取文字、表格、或是影像來做分析,或是把程式執行的結果儲存下來,就需要能夠存取外部的檔案。例如,在上一節中,當貪食蛇遊戲結束之後,隨著程式停止執行,該次的分數也就被丟棄,若能將分數記錄下來,下次遊戲開
Thumbnail
進入目錄、列出目錄列表、讀取檔案內容、寫入檔案(資料)、變更檔案名稱、刪除檔案、目錄內新增檔案、變更目錄名稱、刪除目錄
Thumbnail
進入目錄、列出目錄列表、讀取檔案內容、寫入檔案(資料)、變更檔案名稱、刪除檔案、目錄內新增檔案、變更目錄名稱、刪除目錄
Thumbnail
檔案路徑(相對路徑、絕對路徑)、檔案讀入,匯出
Thumbnail
檔案路徑(相對路徑、絕對路徑)、檔案讀入,匯出
Thumbnail
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
Thumbnail
現在這個時代,不管你是讀什麼科系,多多少少要會一點語言程式,用來做大量分析數據,或是幫你完成千篇一律重複性又高的工作,讓你有更多寶貴的時間去做更重要的想法發想、討論,重複性數據分析就交給電腦程式去執行,魯叔從大學到現在大概使用過Fortran(77、95、fixed、free,是我博班到博後使用
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News