更新函数sqldfr语言

更新函数sqldfr语言,r,sqldf,R,Sqldf,我对SQLdf有问题。虽然我试图更新一个表,但它总是将NULL作为输出。我对这个问题很恼火,但我不知道如何解决它。我的代码是: fn$sqldf("update cons set V1='%$numbernew%' where V1=$'contact'") 但是,在我检查它,看看是否有什么改变,所有的都是一样的,在开始。任何想法都会有帮助。正如Joran在评论中提到的,这个问题是sqldf常见问题解答。事实上,这是一个问题 正如上面所讨论的,问题是您要求更新表,但从未要求它返回表。另外,$'

我对SQLdf有问题。虽然我试图更新一个表,但它总是将NULL作为输出。我对这个问题很恼火,但我不知道如何解决它。我的代码是:

fn$sqldf("update cons set V1='%$numbernew%' where V1=$'contact'")

但是,在我检查它,看看是否有什么改变,所有的都是一样的,在开始。任何想法都会有帮助。

正如Joran在评论中提到的,这个问题是sqldf常见问题解答。事实上,这是一个问题

正如上面所讨论的,问题是您要求更新表,但从未要求它返回表。另外,
$'contract'
应该是
'$contract'
,因为您希望在
contract
中替换,然后用单引号将替换包围起来

# set up test data for reproduciblity
con <- data.frame(V1 = c("a", "b", "c"))
contract <- "a"
numbernew <- "x"
这也会起作用:

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
sqldf()#启动一系列SQL语句
fn$sqldf(“更新con set V1='%$numbernew%'其中V1='$contract'))

扫描软件包常见问题解答的ans有时可能是错误的。我知道,但这与参数无关。这是一个有时会发生的问题,它与sqldf包有关,它不允许您轻松地更新表……嘿,谢谢您的回答。我的“$contact”是正确的。我只是把它编辑错了。我的问题是(经过一段时间的搜索)变量numbernew包含如下符号:sql可能将其识别为命令的etc。知道如何处理这些吗?字符串文字可能包含特殊字符。如果它们包含单引号,则将它们加倍,例如,
“乔的比萨饼”
,那怎么办?然后呢??它们都应该起作用。试试:
sqldf(“选择“?”、“?”、“乔的比萨饼”)
这不清楚。您可能想从可复制的输入和输出开始另一个问题。
   V1
1 %x%
2   b
3   c
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