在R paste语句中获取不正确的值

时间:2015-09-21 19:29:25

标签: mysql r

我正在尝试编写一个查询语句,将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_numanalysis_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运行相同的代码,如上所示;但是,现在我的b1b17i8i9的值不正确,如下所示:

print(inserts)
[1] "INSERT INTO `dbname` (`grp_num`, `analysis_id`, `b1`, `b17`, `i8`, `i9`) VALUES (28, 118, 1, 2, 2, 1);"

所以我得到1s和2s,我不确定他们对应的是什么,关于如何解决这个问题的任何想法?谢谢。

0 个答案:

没有答案