我正在尝试编写一个查询语句,将R结果放入SQL数据库中。我试图写入数据库的结果如下:
print(results)
b1 b17 i8 i9
.03 .04 .77 .01
我使用以下命令创建查询语句:
inserts<-sprintf("INSERT INTO `%s` (%s) VALUES (%s);",
"dbname",
paste(sprintf("`%s`",colnames(results)), collapse=", "),
sapply(1:nrow(results), function(i){
paste(sprintf("%s",unlist(results[i,],use.names=FALSE))
,collapse=", ")}))
产生以下内容并在我运行时正常工作:
print(inserts)
[1] "INSERT INTO `dbname` (`b1`, `b17`, `i8`, `i9`) VALUES (.03, .04, .77, .01);"
我遇到的问题是我在数据库中有两个其他列字段:grp_num
和analysis_id
我还想包含在查询语句中。在上面给出的结果的情况下,这些看起来如下:
print(grp_num)
num
1 28
print(analysis_id)
[1] 118
然后我将这些cbind绑定到results
并获得以下内容:
results<-cbind(grp_num,analysis_id,results)
print(results)
grp_num analysis_id b1 b17 i8 i9
28 118 .03 .04 .77 .01
然后我为inserts
运行相同的代码,如上所示;但是,现在我的b1
,b17
,i8
和i9
的值不正确,如下所示:
print(inserts)
[1] "INSERT INTO `dbname` (`grp_num`, `analysis_id`, `b1`, `b17`, `i8`, `i9`) VALUES (28, 118, 1, 2, 2, 1);"
所以我得到1s和2s,我不确定他们对应的是什么,关于如何解决这个问题的任何想法?谢谢。