在R語言中可以使用scan()函數從鍵盤或文件中讀取數據到向量或列表中。
scan()函數的語法形式
scan()函數的語法格式如下:
scan(file = "", what = double(0), nmax = -1, n = -1, sep = "",
quote = if(identical(sep, "\n")) "" else "'\"", dec = ".", skip = 0,
nlines = 0, na.strings = "NA", flush = FALSE, fill = FALSE,
strip.white = FALSE, quiet = FALSE, blank.lines.skip = TRUE,
multi.line = TRUE, comment.char = "", allowEscapes = FALSE,
fileencoding = "", encoding = "unknown",text, skipNul = FALSE)
是不是看到這些東西,有些懵圈了,不用着急,參數雖然多,實際上常用的并不是很多。這篇文章先詳細介紹一下各參數的含義,在以後的文章中将具體介紹如何使用這個函數從鍵盤或文件中獲取數據。
參數含義描述file參數用于指定要讀取文件的路徑和名字,如果為空或"",則是要從鍵盤中獲取數據。
如果指定的文件的名字使用的是相對路徑,則默認是從當前工作目錄中尋找文件(當前工作目錄可以使用getwd()函數獲取到);
如果指定了絕對路徑,則scan()函數要按照絕對路徑讀取文件。
what用于給出要讀取的數據的類型,支持的數據類型包括:logical, integer, numeric, complex, character, raw以及list.
是一個整型值,用于指定要讀取數據的最大數量,如果what被指定為列表(list),則nmax表示要讀取的最大記錄數或行數,如果忽略nmax參數,或該參數被指定為非負整數,或者該參數被設定為無效值時(同時,nlines參數沒有被設定為負數時),scan函數将會讀取到該文件的末尾。
是一個整型值,要讀取的數據的最大數量,默認情況下沒有限制。若指定無效的值,将會被忽略。
sep參數是用于指出文件中數據的分隔符,scan默認數據是以空白進行分隔,另外,也可以指定其它單個字符作為數據域的分隔符
用于指定包圍字符串的字符,該參數應該是一個單字符。
用于表示小數數點的字符,該參數隻能是包含單個字符的字符串或零長度的字符串。默認為“.”。
用于指定讀取數據時,忽略文件前面的行數。
指定要讀取文件中數據的最大行數。
字符向量。用于指定表示缺失數據時的字符串,默認為NA。在邏輯型、整數型、數值型和複數型數據域中,空白域也被看作缺失值。
是一個邏輯值,默認為FALSE。如果該參數設置為TRUE,則scan()函數讀取完指定列數後将轉到下一行。這允許用戶在最後一個字段後面添加注釋。
邏輯值。如果參數值設置為TRUE時,當行中的字段值少于字段數時,将以空白填充。
在sep參數已指定的情況下,如果為TRUE,則删除字符型字段前後多餘的空格。但包含在引用中的空白不會被删除,同時數值型字段值前後的空白在任何情況下都會被去掉。
是一個邏輯值,當設置為FALSE時,scan()函數将輸出一行信息,用于說明讀取了哪些項的信息。
是一個邏輯值 ,如果設置為TRUE,将忽略空白行
是一個邏輯值。隻用于what參數是一個列表型參數時。當設置為FALSE時,每個記錄的字段都在一行中。
指定注釋開始的字符。一行中以這個字符開頭的部分将被忽略。默認關閉此項。
該參數是一個邏輯值,默認值為FALSE。表示在一個引用起來的字符串中,類似“\n”這樣的字符被解釋為轉義字符還是按原樣輸出(字面意義或逐字字符串)。若不在引号中,這樣的字符将視為字段分隔符。
字符串類型,指定文件的編碼方式。如果指定了該參數,則文本數據按照指定的格式重新編碼。
對輸入的非ASCII字符按照指定的編碼格式編碼。
字符串類型。if file is not supplied and this is, then data are read from the value of text via a text connection.
邏輯值。是否忽略空值。
歡迎關注本号,本号将持續更新R語言方面的文章,内容由淺入深,由R語言的基本語法到具體的數據分析應用。如有問題請留言。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!