1、使用剪貼板,而後使用read.table函數;git
首先選擇Excel中的數據源,而後複製; github
在Rstudio中輸入以下腳本,回車便可; sql
read.table("clipboard", header = TRUE)編輯器
注:header = TRUE,表示首行爲標題行,若爲FALSE則標題行也算在正文第一行,結果以下; 函數
2、將Excel另存爲csv文件,而後使用read.csv函數;post
打開Excel數據源,另存爲example.csv文件;路徑爲【C:\Users\Administrator\Desktop\example】編碼
而後在Rstudio中輸入以下代碼,回車便可:spa
read.csv("C:/Users/Administrator/Desktop/example/example.csv", header = TRUE)操作系統
這裏的header參數與使用剪貼板中的header參數用法一致,在此不在贅述;postgresql
注:在R中「\」是一個轉義字符,故須要將路徑中的「\」字符,使用「/」替代,或使用"\\"替代;
3、將Excel另存爲txt文本文件,而後使用read.table函數;
打開Excel數據源,另存爲example.txt文件;路徑爲【C:\Users\Administrator\Desktop\example】
而後在Rstudio中輸入以下代碼,回車便可;
read.table("C:/Users/Administrator/Desktop/example/example.txt", header = TRUE)
4、使用RODBC包(xls格式Excel文件)
以前使用過RODBC包鏈接過Postgresql,回覆【postgresql】可查看相關文章;這是裏一樣能夠 使用RODBC中的odbcConnectExcel來建立與Excel的鏈接,獲取Excel中的數據;
> install.packages("RODBC")
> library(RODBC)
> conn <- odbcConnectExcel("C:/Users/Administrator/Desktop/example/example.xls")
> sqlTables(conn)
> sqlFetch(conn, "example")
> sqlQuery(conn, "select * from [example$]")
> odbcClose(conn)
其中example.xls中一個Excel文件(2003版本格式),example是工做薄中要讀取數據的工做表的名稱,conn是一個由odbcConnectExcel()返回的RODBC鏈接對象,mydataframe是返回的數據框。注:RODBC也可用於從Access導入數據,具體能夠查看help(RODBC)幫助;
注:xlsx格式的Excel文件(200七、2010版)導入R語言會出錯,可用xlsx包來讀取這種格式的電子表格,腳本以下:
> install.packages("xlsx")
> library(xlsx)
> workbook <- "C:/Users/Administrator/Desktop/example/example.xlsx"
> mydataframe <- real.xlsx(workbook, 1)
> mydataframe
今天介紹了幾種導入Excel中的數據至R語言中的方法,包括利用剪貼板、經過將Excel導入csv格式或txt格式的文件,以及利用RODBC包(或xlsx包)的方法;鑑於xls版本較爲老舊,建議採起前三種方法導入Excel數據;
read.talbe以及read.csv及RODBC中相關函數的參數都不少,文章中只用了幾個常見的參數,其他參數均採起了默認的設置,可利用?read.talbe或help(read.table)等語法來查詢相關函數的具體幫助說明,例如使用?read.talbe語法查詢幫助;
read.table的函數參數很是多,同時也會列出相關的函數,但最經常使用的也就幾個,以下:
read.table(file, header = FALSE, sep = "", quote = "\"'",dec = ".", skip = 0,strip.white = FALSE, blank.lines.skip = TRUE,comment.char = "#")
file,表示要讀取的文件:file能夠是①絕對路徑或者相對路徑,可是必定要注意,在R中「\」是轉義符,故路徑須要寫成「/」或者「\\」; ②使用剪貼板;③使用file.choose(),彈出對話框,讓你選擇文件的位置。
header,表示數據文件中第一行是否是標題。默認爲F(FALSE),認爲數據文件中無標題;
sep,指定分隔符,默認是空格。quote是引號,默認是雙引號。dec是小數點的表示,默認就是一個點。skip是肯定是否跳過某些行。strip.white肯定是否消除空白字符。blank.lines.skip肯定是否要跳過空白行。comment.char指定用於表示註釋的引導符號。
大 數 據 人
報道DT時代應用資訊及動態,爆料剖析行業熱點新聞
Hadley Wickham 和 RStudio團隊寫了一些新的R包,這些包對於每一個須要在R中讀入數據的人來講都是很是有用的。readr包提供了一些在R中讀入文本數據的函數。readxl包提供了一些在R中讀入Excel電子表格數據的函數。它們的讀取速度遠遠超過你目前正在用的一些函數。
readr
包提供了若干函數在R中讀取數據。咱們一般會用R中的read.table
家族函數來完成咱們的數據讀入任務。這裏,readr
包提供了許多替代函數。它們增長了額外的一些功能而且速度快不少。
首先,read_table
幾乎代替了read.table
。下面經過讀取一個包含400萬行的數據來比較它們的區別。點擊這裏下載該數據。
注1:在演示以前簡單說下我電腦的配置:win7,64位操做系統,8G內存,CPU A6雙核。電腦配置不行,原文給出的實驗時間甩了我好幾條街。但無論怎樣,在現有的條件下效率確實提升了不少。原文用時見末尾連接。
注2:若是讀取中文數據出現亂碼,在編輯器設置下字符編碼爲"UTF-8"
system.time(read_table("C:\\Users\\a\\Desktop\\biggerfile.txt", col_names=c("DAY","MONTH","YEAR","TEMP"))) system.time(read.table("C:\\Users\\a\\Desktop\\biggerfile.txt", col.names=c("DAY","MONTH","YEAR","TEMP")))
這些命令看上去很是類似,可是read.table
花的時間是50.62秒,而read_table
完成相同的任務只花了2.76秒。這是由於read_table
把數據當作是固定格式的文件,而且使用C++快速處理數據。
R中的基礎包utils
也有讀取固定寬度數據的函數,下面的示例就能體現出readr
的亮點:
system.time(read_fwf("C:\\Users\\a\\Desktop\\biggerfile.txt", fwf_widths(c(3,15,16,12), col_names=c("DAY","MONTH","YEAR","TEMP")))) system.time(read.fwf("C:\\Users\\a\\Desktop\\biggerfile.txt", c(3,15,16,12), col.ames=c("DAY","MONTH","YEAR","TEMP")))
readr
包的read_fwf
函數用時3.97秒,而標準的read.fwf
函數耗時1372秒。
readr包中的其它函數包括:read_csv
讀取逗號分隔的數據(歐洲用的是read_csv2
函數),read_tsv
讀取製表符分隔數據,read_lines
函數從文件中逐行讀取數據(很是適合複雜的後期處理)。它還能夠讀取多種格式的日期時間列,智能的將文本數據讀取爲字符串(再也不須要設置strings.as.factors=FALSE
)。
對於Excel格式的數據,這裏有readxl包。這個包提供的函數能夠讀取.xls和.xlsx格式的Excel工做表。雖然這裏沒有演示read_execl
函數的使用,可是它跟readr
中的函數同樣都是基於C++庫的,所以讀取速度應該也很快。最重要的是,它沒有任何的外部依賴,所以你能夠在任意平臺上用它來讀取數據—不要求安裝了Excel。
readr
包已發佈在CRAN上,readxl
能夠從github安裝。
github地址:https://github.com/hadley/readxl