【发布时间】:2018-12-20 05:49:07
【问题描述】:
我有以下数据框
df<-data.frame(
SLNO=c(1:5),
sentence=c("Campaign Blast all channels Team may8t", "MDC Email Campaign 1 on june 13", "Email camp Blastteam 09","Email camp Blastteam 09", "Email camp Blastteam 09thcamp"
)
我正在使用以下代码将数据框写入 SQL 表
require(rmysql)
require(rsqlite)
name<-'username'
password<-'userpass'
hostname<-'1.2.3.4'
port<-2222
database<-'db'
connection1<-dbConnect(dbDriver("MySQL"), user=username,
password=userpass, dbname= db, host=hostname, port=port)
我要写入的表已经存在于数据库 db-table 中
dbWriteTable(custdbconn, value = df,
name ='table' , overwrite=F, append=T,
field.types=list(SlNo= 'int()', Sentence= 'text'), row.names=F)
我收到一条错误提示
Invalid utf8 character string: 'MDC Email Campaign 1 on
如果我单独插入行,这些行将写入 SQL 数据库。 有没有办法在不显示错误的情况下编写整个表格。
【问题讨论】:
-
不要在
data.frame的列赋值中使用<-,这里和=不一样。 (注意如何不保留列名?这是不理想的一个标志。)第二:我建议不要像这样使用require;你应该使用require的唯一原因是如果你捕获它的返回值并基于它做一些事情(参考:yihui.name/en/2014/07/library-vs-require 和r-pkgs.had.co.nz/namespace.html#search-path)。 -
是的,先生。我注意到了