我也遇到了同樣的錯誤:
## 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"
上述結果表明,sp_load_ue和sp_load_te重複。
## 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.
注意:我認爲在sqldf中存在一個bug,因爲它允許在將輸出分配給數據框的同時重複列名。它應該在將輸出分配給數據框時引發錯誤/警告,以便用戶可以適當地重命名列。
請檢查[問]和[mcve]。 –