更新函数sqldf R语言

Ton*_*ony 4 r sqldf

我有SQLdf的问题.虽然我正在尝试更新表,但它总是将NULL作为输出.我对这个问题嗤之以鼻,但我无法弄清楚如何解决它.我的代码是:

fn$sqldf("update cons set V1='%$numbernew%' where V1=$'contact'")
Run Code Online (Sandbox Code Playgroud)

但是在我检查它以确定是否有变化后,所有都与开始时相同.任何想法都会有帮助.

G. *_*eck 7

正如Joran在评论中提到的,这个问题是sqldf FAQ.实际上它的sqldf FAQ#8.

正如所讨论的那样,问题是您要求更新表但从未要求它返回表.也$'contract'应该是'$contract'因为你想contract用单引号代替然后用单引号包围那个替换.

# set up test data for reproduciblity
con <- data.frame(V1 = c("a", "b", "c"))
contract <- "a"
numbernew <- "x"
Run Code Online (Sandbox Code Playgroud)

现在我们有一些数据试试这个:

sql1 <- fn$identity("update con set V1 ='%$numbernew%' where V1 = '$contract' ")
sql2 <- "select * from main.con"
sqldf(c(sql1, sql2))
Run Code Online (Sandbox Code Playgroud)

结果是:

   V1
1 %x%
2   b
3   c
Run Code Online (Sandbox Code Playgroud)

这也可以:

sqldf() # start a sequence of SQL statements

fn$sqldf("update con set V1 ='%$numbernew%' where V1 = '$contract' ")
ans <- sqldf("select * from main.con")

sqldf() # SQL statements finished
Run Code Online (Sandbox Code Playgroud)