我是新来的,我对R的使用知之甚少。我无法找到解决当前问题的方法:使用字符(Path)作为我函数的参数。
Path <- "C:/...../"
foo <-function(Path){
Driver <- "Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=Path"
connect <- odbcDriverConnect(Driver)
return(connect)
}
我的问题是,Path将在带引号的函数中被替换。至少我的函数中有以下格式。
...DBQ="C:/..../""
我尝试使用noquote或cat来修复此问题以删除引号,但它没有帮助。
我事先感谢你在R中帮助初学者:)
答案 0 :(得分:1)
您可以使用sprintf()
插入Path
。
Path <- "C:/...../"
sprintf("Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=\"%s\"", Path)
# [1] "Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=\"C:/...../\""
所以你的更新功能将是
foo <- function(Path) {
Driver <- "Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=\"%s\""
connect <- odbcDriverConnect(sprintf(Driver, Path))
return(connect)
}
请参阅help(sprintf)
了解其所有惊人用途。
更新:由于我不清楚您是否需要Path
周围的引号,因此我将包含没有它们的方法。如果您不想要字符串中的引号,请将其从sprintf()
格式中删除。
Path <- "C:/...../"
sprintf("Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=%s", Path)
# [1] "Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:/...../"