Я запутался с приведенным ниже кодом и надеюсь, что кто-то может дать мне понимание, в котором кажется, что новая строка может соответствовать пробел в gsub
в R.
Вкратце, я использовал sprintf, чтобы подготовить оператор запроса SQL, и чтобы сделать код читабельным и легким для изменения, я разделил оператор на несколько строк.
gsub использовался для избавления от символов новой строки, однако, к моему удивлению, \\s+
может соответствовать как новой строке, так и дополнительным пробелам.
chr = 1
pos = 1002
ref = 'A'
alt = 'G'
cmd <- sprintf("select * from MyDB
where `chr` ='%s'
and pos = %i
and ref = %s
and alt = %s",
chr, pos, ref, alt)
cmd # where new lines were evident
query <- gsub(pattern='\\n+',replacement=" ", cmd)
query #no new line, extra spaces remaining
query2 <- gsub(pattern='\\s+',replacement=" ", cmd)
query2 #new line and extra spaces all gone
query3 <- gsub(pattern="[[:space:]]+",replacement=" ", cmd)
query3 #same as query2
Код был протестирован в версии R 3.5.1. Надеюсь, что вы можете проверить код и поделиться своими мыслями.