2013-11-15 56 views
-2

我需要將許多.xlsx格式的文件讀入數據框。每一個excel文件有一個像
日期毛利潤純利PnlLow
2013年10月15日3000 2500 -500
二○一三年十月二十零日3100 2600 -500
2013年10月22日-500 -600 -1000
相同的格式 總計6100 5100如何將excel文件的一部分讀入數據框r?

BestDay 2600
WorstDay -500

表,其中要求總的最後一排,沒有對每列的值。表格下方還有其他部分,您可以看到它們並以空行分隔。如何將表讀入數據框(最好包含「Total」行)?我試過read.table(file,nrow = 4,head = T,sep =「」);那麼會發生警告消息:在read.table(「Results2.xlsx」,nrows = 5,header = T,sep =「」): 「Results2.xlsx」上由readTableHeader找到的未完成的最終行

+0

'read.table'只能讀取文本文件(包括.csv文件)。如果你想讀取Excel文件,你需要使用其中的一個軟件包。 – Roland

+0

......即** XLConnect **或** xlsx **。 ** gdata **中也有一個基於perl的函數。我想。只要谷歌搜索「讀取r中的excel文件」就可以獲得所有這些信息。 – joran

+0

http://stackoverflow.com/questions/15178218/r-linux-shell-convert-multi-sheet-xls-to-csv-in-batch如果你在Linux上批量轉換你所有的Excell文件到CSV – Chargaff

回答

0

如果您有幾個文件以一致的名稱,如Results1.xlsx,Results2.xlsx,您可以嘗試:

setwd("path/to/your/file") 
library(gdata) 
for (i in 1:2) { 
filename = paste("Results", i, ".xlsx", sep = "") 
assign(paste("res", i, sep =""), read.xls(filename, 1)) 
} 

假設你想讀的工作是第一位的。否則,只需更改號碼,或者提供所需工作表的名稱。

然後,您可以操縱數據框以獲取所需的值。

+0

什麼read.xls中的1是什麼意思? – Everest

+0

我讀了read.xls的文檔。看起來,read.xls不會忽略由表中的空白行分隔的小部分。 – Everest

+0

我發現.csv是要讀入R的最穩定的文件。最好使用read.csv()。要麼設置您的工作主管,要麼使用read.csv(file.choose())通過GUI導航您的目錄。作爲一個參考,如果你插入你的表作爲代碼,它會更容易閱讀。 –