При загрузке .csv
с помощью sqldf
все идет нормально, пока я не загружу data.table
. Например:
library(sqldf)
write.table(trees, file="trees.csv", row.names=FALSE, col.names=FALSE, sep=",")
my.df <- read.csv.sql("trees.csv", "select * from file",
header = FALSE, row.names = FALSE)
работает, а
library(data.table)
my.df <- read.csv.sql("trees.csv", "select * from file",
header = FALSE, row.names = FALSE)
# Error in list(...)[[1]] : subscript out of bounds
- нет. После загрузки data.table
сообщает вам, что
The following object(s) are masked from 'package:base':
cbind, rbind
Итак, я попробовал это
rbind <- base::rbind # `unmask` rbind from base::
library(data.table)
my.df <- read.csv.sql("trees.csv", "select * from file",
header = FALSE, row.names = FALSE)
rbind <- data.table::rbind # `mask` rbind with data.table::rbind
, которое работает. Прежде чем я засорю весь свой код этим трюком:
Какое наилучшее практическое решение для разрешения конфликтов маскировки в R?
РЕДАКТИРОВАТЬ : Здесь есть тесно связанный поток , но общего решения не предлагается.