R 掩盖冲突
当使用R 掩盖冲突,r,data.table,R,Data.table,当使用sqldf加载.csv时,一切正常,直到加载数据.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) 所以,我试过这个 rbi
sqldf
加载.csv
时,一切正常,直到加载数据.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)
所以,我试过这个
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
rbind根据评论,是的,请提交错误报告:
bug.report(package="data.table")
这样就不会忘记,每次状态改变时,你都会收到一封自动电子邮件,如果修复不充分,你可以重新打开它
编辑:
现在在R-Forge上的v1.6.7中:
- 与包sqldf(可以在空的
..
上调用do.call(“rbind”,…)
)的兼容性已修复,并添加了测试。data.table正在打开列表(…)[[1]]
而不是.1
。感谢RYogi的报道#1623
向数据的维护者提交错误报告。我建议使用table
。我同意@baptiste data。table不应破坏R的基本部分,如rbind
。可以用其他东西替换rbind
,只要它能像原来的一样工作。但是,我要确认错误来自于调用rbind()
,这只是为了确定-,然后再向data.table的维护者提交错误报告。data.table
项目有一个r-forge邮件列表,这是一个合适的帖子。他们的“帮助”网页上说,他们没有版主可以查看非订阅者的帖子,所以你需要先订阅。(然而,我不认为Matthew Dowle会介意一个错误报告不是这样。他对用户输入的响应非常公平。)@RYogi,(1)每次你想使用sqldf
issuedetach()
时,假设data.table
是你附加的最后一个包。如果这不起作用,请尝试卸载它,即detach(unload=TRUE)
。一旦您再次阅读了数据问题库(data.table)
。(2) 您也可以在R 2.14和R 2.15中尝试您的原始代码,因为R处理此类冲突的方式发生了一些变化,这可能是R在这些较新版本中以您希望的方式自动处理的。@RYogi,(3)我注意到您的原始代码确实适用于R-Forge版本的data.table。
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
bug.report(package="data.table")