我在mysql中有表'df1',现在我正在尝试将下一组行(df2)附加到df1,
我正在尝试将 df2 附加到 df1,如下所示
connection <- dbConnect(MySQL(), user = 'root', password = 'pass',
host = 'localhost', dbname = 'data')
dbWriteTable(connection,"df1",df2,row.names=T,append=T)
ERROR:could not run statement: Table 'df1' already exists
请建议对上述代码进行任何修改
提前致谢
以下内容对我来说很好用:
library(RMySQL)
library(stringi)
con <- dbConnect(MySQL(), user = 'test', password = '****',
host = 'localhost', dbname = 'test')
dbf1 <- data.frame(x=round(runif(500, 1, 1000),0),
y=rnorm(500, mean=100, sd=21),
z=stri_rand_strings(500, 5),
stringsAsFactors = FALSE)
dbWriteTable(con, "test1", dbf1)
dbDisconnect(con)
然后:
library(RMySQL)
library(stringi)
con <- dbConnect(MySQL(), user = 'test', password = '****',
host = 'localhost', dbname = 'test')
dbf2 <- data.frame(x=round(runif(300, 10000, 11000),0),
y=rnorm(300, mean=100, sd=21),
z=stri_rand_strings(300, 5),
stringsAsFactors = FALSE)
dbWriteTable(con, "test1", dbf2, append = TRUE)
dbGetQuery(con, "SELECT count(x) FROM test1")
dbDisconnect(con)
查询返回:
count(x)
1 800
显示第二组 300 行已按预期追加。
您需要给出我们可以运行的错误的工作示例。首先想到的是,使用 T 和 F 作为 TRUE 和 FALSE 的缩写是不好的做法!虽然 TRUE 和 FALSE 是 R 中的保留字,不能更改,但 T 和 F 是普通变量,可以修改。因此,如果不看到您的整个脚本,就无法保证row.names=T,append=T
实际上意味着append=TRUE
!