2016-06-07 2 views
1

У меня есть dataframe mergeTest которые имеют столбец Имя с апострофа на несколько значений,Спасаясь апостроф в Sqldf с R

Так что я зацикливание через него, чтобы разделить значения, знаменатель, содержащиеся в таблица 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 (Name) содержит апостроф в нем, он будет интерпретировать его и возвращает ошибку.

Я пытался использовать GSUB с grepl, но он добавляет два обратных слеша моих имен, так что я не знаю, есть ли способ иметь дело с ним, или я должен просто подавить апостроф в двух моих datraframes?

+0

вы пробовали '\\«'вместо' \» '? – zyurnaidi

ответ

4

Двойная одиночная цитата. Вот пример:

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

Спасибо, я заставлю его работать! – tricky

1

Замена одного одинарные кавычки с двумя одинарными кавычками будет исправить это как в:

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

 Смежные вопросы

  • Нет связанных вопросов^_^