我正在学习R语言,想要告别SAS,但我还是个新手,有时候很难找到我需要的内容。
针对这种情况,我阅读了以下文章:如何将R变量传递给RODBC的sqlQuery?,并且根据自己的需求进行了一些修改,现在只能向目标表中插入一个变量。
以下是我的代码:
针对这种情况,我阅读了以下文章:如何将R变量传递给RODBC的sqlQuery?,并且根据自己的需求进行了一些修改,现在只能向目标表中插入一个变量。
以下是我的代码:
library(RODBC)
channel <- odbcConnect("test")
b <- sqlQuery(channel,
"select top 1 Noinscr
FROM table
where PrixVente > 100
order by datevente desc")
sqlQuery(channel,
paste("insert into TestTable (UniqueID) Values (",b,")", sep = "")
当我将top 1
替换为任何其他数字,比如top 2
,并运行完全相同的代码时,我会得到以下错误:
[1] "42000 195 [Microsoft][SQL Server Native Client 10.0][SQL Server]
'c' is not a recognized built-in function name."
[2] "[RODBC] ERROR: Could not SQLExecDirect
'insert into TestTable (UniqueID) Values (c(8535735, 8449336))'"
我明白这是因为当我使用命令 paste(b)
时,会生成多余的 c,我猜测它代表列。
那么,我该如何获得 "8535735, 8449336"
而不是 "c(8535735, 8449336)"
呢?还是有其他方法吗?
Reduce(function(u, v) paste(u, ", ", v, sep=""), b)
。 - ROLO