只读xls中的某些列

问题描述 投票:3回答:3

我有一张带有几张纸的excel电子表格。格式如下:

Date        A       B       C       D       E       F                       Reference   Ref Date    Half life
03/01/13    6.29    5.28    8.15    4.93    11.67   6.4                     8.88        01/01/99    30.23
04/01/13    6.39    5.39    8.22    5.04    11.75   6.4                 
07/01/13    6.34    5.32    8.17    4.92    11.82   6.4                 
08/01/13    6.33    5.3 8.16    4.96    11.68   6.4                 
09/01/13    6.29    5.29    8.13    4.93    11.73   6.4                 
10/01/13    6.29    5.32    8.17    4.95    11.61   6.4                 
11/01/13    6.21    5.27    8.12    4.95    11.57   6.4                 
14/01/13    6.28    5.28    8.09    4.92    11.65   6.4                 
15/01/13    6.25    5.26    8.06    4.9 11.59   6.4                 
16/01/13    6.26    5.3 8.08    4.94    11.7    6.4                 
17/01/13    6.27    5.27    8.09    4.96    11.57   6.4                 
18/01/13    6.29    5.27    8.04    4.94    11.57   6.4                 
21/01/13    6.34    5.33    8.23    4.99    11.68   6.4                 
22/01/13    6.31    5.34    8.23    4.97    11.63   6.4                 
23/01/13    6.24    5.26    8.03    4.93    11.58   6.4                 
24/01/13    6.24    5.27    8.03    4.93    11.56   6.4                 
25/01/13    6.26    5.3 8.08    4.93    11.6    6.4 

我想将数据列Date和A-F只读入数据帧,并忽略J 1,2,K 1,2和L,1,2中用于计算某些值的元素。

我正在使用包gdata中的read.xls

read.xls("filename.xls", "sheetname", na.strings=c("NA","#DIV/0!"))

然而,这给了我一个包含A - L列的数据框。我可以将这个数据帧重新设置为所需的格式,但更愿意选择要读取的列。我可以用read.xls以类似的方式执行此操作,read.table可以实现此目的(Ways to read only select columns from a file into R? (A happy medium between `read.table` and `scan`?)

r xls
3个回答
11
投票

您可以使用库XLConnect来读取.xls文件。函数readWorksheet()允许您设置需要导入的列和行。

library(XLConnect)
wb<-loadWorkbook("wb.xls")
data <- readWorksheet(wb, sheet = "Sheet1",startCol=1,endCol=7)

6
投票

使用readxlread_xlsx包你可以指定范围。根据文件类型使用read_xls或read_excel。

library(readxl)
df <- read_xlsx(path = "filename.xlsx", sheet = "sheetname", range = cell_cols("A:G"))

2
投票

另一个选择是使用Excel named rangeRODBC

channel<-odbcConnectExcel(paste(Repository,excelFile, sep = "/"))
ConsoTab<-sqlFetch(channel,NamesRangeAF)
odbcClose(channel)

这里NamesRangeAF是你的Excel命名范围。

© www.soinside.com 2019 - 2024. All rights reserved.