警告:result_create 中的错误:没有这样的列:tmp
Warning: Error in result_create: no such column: tmp
我正在运行使用 sqldf
在 Shiny in R 中查询数据库。但是出现错误。
ui.R:
observeEvent (input$uploadForTest_1, {
inFile=input$uploadForTest_1
inFileName=input$uploadForTest_1$name
file <-"tss.txt"
tmp = paste("audio/street", inFileName, sep = "/")
res <- read.csv.sql(file,header=FALSE,sql = "select * from file where V1=tmp",sep="\t")
print(res)
})
我已成功运行以下查询:
res <- read.csv.sql(file,header=FALSE,sql = "select * from file where V1='audio/street/b098.wav'",sep="\t")
但是,如果我 运行 ui.R
中提到的查询,它给我的错误是 tmp
列不存在:
Warning: Error in result_create: no such column: tmp 86:
我不想在查询中使用字符串。我想使用变量名。因为我不想在查询中硬编码字符串。我可以在查询中使用变量名而不是字符串吗?如果是,那我该怎么做?我没有在 Internet 上找到解决我的问题的方法。谢谢。
您可以使用 sprintf
。另一种选择是将字符串粘贴在一起,但我发现 sprintf
对于此任务要优雅得多。
> tmp <- "audio/street/somefile.txt"
> tmp <- "audio/street/somefile.txt"
> "select * from file where V1=tmp"
[1] "select * from file where V1=tmp"
> sprintf("select * from file where V1='%s'", tmp)
[1] "select * from file where V1='audio/street/somefile.txt'"
在 read.csv.sql
前加上 fn$
,并在 SQL 语句中使用 '$tmp'
。
fn$read.csv.sql(file, sql = "select * from file where V1 = '$tmp'",
header = FALSE, sep = "\t")
有关详细信息,请参阅 ?fn
和 gsubfn 插图。请注意,sqldf 会自动加载 gsubfn 包,因此它已经可用。
我正在运行使用 sqldf
在 Shiny in R 中查询数据库。但是出现错误。
ui.R:
observeEvent (input$uploadForTest_1, {
inFile=input$uploadForTest_1
inFileName=input$uploadForTest_1$name
file <-"tss.txt"
tmp = paste("audio/street", inFileName, sep = "/")
res <- read.csv.sql(file,header=FALSE,sql = "select * from file where V1=tmp",sep="\t")
print(res)
})
我已成功运行以下查询:
res <- read.csv.sql(file,header=FALSE,sql = "select * from file where V1='audio/street/b098.wav'",sep="\t")
但是,如果我 运行 ui.R
中提到的查询,它给我的错误是 tmp
列不存在:
Warning: Error in result_create: no such column: tmp 86:
我不想在查询中使用字符串。我想使用变量名。因为我不想在查询中硬编码字符串。我可以在查询中使用变量名而不是字符串吗?如果是,那我该怎么做?我没有在 Internet 上找到解决我的问题的方法。谢谢。
您可以使用 sprintf
。另一种选择是将字符串粘贴在一起,但我发现 sprintf
对于此任务要优雅得多。
> tmp <- "audio/street/somefile.txt"
> tmp <- "audio/street/somefile.txt"
> "select * from file where V1=tmp"
[1] "select * from file where V1=tmp"
> sprintf("select * from file where V1='%s'", tmp)
[1] "select * from file where V1='audio/street/somefile.txt'"
在 read.csv.sql
前加上 fn$
,并在 SQL 语句中使用 '$tmp'
。
fn$read.csv.sql(file, sql = "select * from file where V1 = '$tmp'",
header = FALSE, sep = "\t")
有关详细信息,请参阅 ?fn
和 gsubfn 插图。请注意,sqldf 会自动加载 gsubfn 包,因此它已经可用。