Я правильно понял.Мне пришлось изменить "" на "NULL" и NA на NULL, а затем использовать оператор ifelse при вставке.Как это:
ch <- DBI::dbConnect(MySQL())
dbSendQuery(ch, 'set character set "utf8"')
dbSendQuery(ch, 'SET NAMES utf8')
test[test == ""] <- "NULL"
test[is.na(test)] <- "NULL"
for (i in 1:nrow(test)) {
query <- paste0("INSERT INTO trade_data VALUES('0', '", test[i, 1], "', ",
ifelse(test[i, 2] == "NULL", test[i, 2], paste0("'", test[i, 2], "'")), ", ",
ifelse(test[i, 3] == "NULL", test[i, 3], paste0("'", test[i, 3], "'")), ", ",
# test[i, 3],", ",
test[i, 4], ", ",
test[i, 5], ", ",
test[i, 6], ", ", test[i, 7] , ", ",
test[i, 8], ", ", test[i, 9] , ", ",
test[i, 10], ", ", test[i, 11] , ", '",
test[i, 12], "')")
dbSendQuery(ch, query)
}
DBI::dbDisconnect(ch)