Я обнаружил странное поведение sqldf - он выдает предупреждение «NA, введенные путем принуждения», когда существует переменная с тем же именем, что и столбец, и с другим типом данных.Следующий код:
x <- structure(list(euring = c(12380, 12430), species = c("Locustella luscinioides",
"Acrocephalus schoenobaenus")), .Names = c("euring", "species"
), row.names = 1:2, class = "data.frame")
species <- structure(list(EURING = c(0, 980), Species = c(NA_integer_, NA_integer_
)), .Names = c("EURING", "Species"), row.names = 1:2, class = "data.frame")
require(sqldf)
result <- sqldf("
select species as Species
from x
")
производит:
Предупреждающее сообщение: В FUN (X [[i]], ...): NA введены с помощью принудительного действия
*Тогда 1008 *
и result
содержат только NA.
Если переменная species
не существует, все в порядке.Но sqldf
не следует даже касаться переменной species
, верно ??
РЕДАКТИРОВАТЬ: Я подозреваю, что это ошибка.Я сообщил об этом: https://github.com/ggrothendieck/sqldf/issues/23