用R逃脱Sqldf中的撇号

时间:2016-06-07 09:34:58

标签: sql r sqldf

我有一个数据框 mergeTest ,它有一个 Name 列,其中包含几个值的撇号,

所以我循环遍历它以划分分母包含在表格中的值 nbrToDivide

test1 <- sqldf(c(paste('UPDATE mergeTest SET Value = Value/',nbrToDivide[i],
            ' WHERE `Year` =',nbrToDivide$`Year`[i],
            ' AND UPPER(Name) = \'',nbrToDivide$Name[i],sep=""),
    'SELECT * from mergeTestt'))

问题是当 UPPER(名称)的值包含撇号时,它会解释它并返回错误。

我尝试将 gsub grepl 一起使用,但它为我的名字添加了两个反斜杠,所以我不知道是否有办法处理它或者我应该只是压制它撇号在我的两个数据框中?

2 个答案:

答案 0 :(得分:4)

将单引号加倍。这是一个例子:

> sqldf("select 'O''Brian' Name")
     Name
1 O'Brian

答案 1 :(得分:1)

用两个单引号替换一个单引号将解决此问题:

"SELECT * FROM TableName WHERE FieldName = 'QueryString''s Value'"