I too encountered the same error:
## step1: encountered the error as below while joining two tables
screens_temp_2 = sqldf("SELECT a.* , b.ue as 'sp_used_ue' , b.te as
'sp_used_te' from screens_temp a left outer join sp_temp b on
a.screen_name = b.screen_name ")
Error: Cannot pass NA to dbQuoteIdentifier()
In addition: Warning message:
In field_types[] <- field_types[names(data)] :
number of items to replace is not a multiple of replacement length
## step2: while checking the column names , this is what i found
colnames(screens_temp)
[1] "screen_name" "usv" "tsv" "20_ue" "20_te"
[6] "40_ue" "40_te" "60_ue" "60_te" "80_ue"
[11] "80_te" "100_ue" "100_te" "sp_load_ue" "sp_load_te"
[16] "sp_load_ue" "sp_load_te"
The above result shows that sp_load_ue and sp_load_te are repeated.
## below i corrected the column names:
colnames(screens_temp) <- c("screen_name", "usv", "tsv", "20_ue", "20_te", "40_ue" , "40_te" , "60_ue" , "60_te" , "80_ue" , "80_te" ,"100_ue" , "100_te" , "sp_load_ue" , "sp_load_te" , "sp_used_ue" , "sp_used_te" )
write.table(screens_temp, "screens_temp_corrected.csv", row.names = FALSE ,col.names = TRUE, sep = ",")
## again i ran step 1, it worked fine.
Note: I think there is a bug in sqldf due to which it allows column names to be repeated while assigning output to a dataframe. It should throw an error/warning while assigning the output to a dataframe so that the user can rename the columns appropriately.