我在一个文件夹中有一堆 excel 文件,并想编写一个函数,如下所示:
# takes a file path and sheetname for an excel workbook, passes on additional params
getxl_sheet <- function(wb_path, sheetname, ...) {
testbook <- XLConnect::loadWorkbook(wb_path)
XLConnect::readWorksheet(testbook, sheet = sheetname, ...)
}
但是,当我运行以下命令时,
set.seed(31415)
x <- rnorm(15); y <- rnorm(15)
randvals <- data.frame(x=x, y=y)
XLConnect::writeWorksheetToFile("~/temp_rands.xlsx", randvals, "Sheet1")
my_vals <- getxl_sheet("~/temp_rands.xlsx", "Sheet1", endRow=5)
my_vals 返回整个 15 x 2 数据帧,而不是仅在第五行停止(同样,如果我使用 'endCol=1' 例如,它会给出两列)。另一方面,在基础 R 中传递额外的参数并不是问题:
my_plot <- function(...) {
plot(...)
}
#my_plot(x=x, y=y, pch=16, col="blue")
按预期工作。上面定义的读取 xlsx 文件的函数有什么问题?谢谢。
devtools::session_info() 会话信息------------------------------------------ --------------------------- 设置值
版本 R 版本 3.1.1 (2014-07-10) system x86_64, darwin13.1.0
ui RStudio (0.98.1062)
语言 (EN)
整理 en_US.UTF-8
tz America/New_York
包裹------------------------------------------------ ------------------------ 包 * 版本日期 来源
devtools 1.6.0.9000 2014-11-26 Github (hadley/devtools@bd9c252) rJava 0.9.6 2013-12-24 CRAN (R 3.1.0)
rstudioapi 0.1 2014-03-27 CRAN (R 3.1.0)
XLConnect * 0.2.9 2014-08-14 CRAN (R 3.1.1)
XLConnectJars * 0.2.9 2014- 08-14 克兰 (R 3.1.1)