2015-07-21 64 views
2

我使用R上的RODBC包,让我使用R.R:,使用R

作为一个例子,以我的问题连接到SQL更新SQL表循环,我有SQL中的表[销售] 3列(Alpha,Beta,BetaDistribution)。

1.50,77,X

2.99,53,X

4.50,122,X

注意,第三列(BetaDistribution)未填充,并且这需要使用填充统计R函数。


我已经指派我的表变量选择

选择< - 类SqlQuery(数据库句柄, '从dbo.sales选择*')

如何我运行一个循环来更新我的SQL表,使BetaDistribution列更新与计算的Beta分布-pbeta(alpha,beta)

+0

您列出了四列,但将收入称为第三,而不是第四。 –

回答

0

就像这样。基本上你做一个临时表,然后更新现有的表。有一个合理的机会你需要调整更新声明,因为我显然不能测试它。

select$BetaDistribution<-yourfunc(x,y) 
sqlSave(dbhandle, select, tablename="dbo.salestemp", rownames=FALSE,varTypes=list(Alpha="decimal(10,10)", Beta="decimal(10,10)", BetaDistribution="decimal(10,10)")) 
sqlQuery(dbhandle, "update dbo.sales 
        set sales.BetaDistribution=salestemp.BetaDistribution 
        from dbo.sales 
        inner join 
        salestemp 
        on 
        sales.Alpha=salestemp.Alpha and 
        sales.Beta=salestemp.Beta") 
sqlQuery(dbhandle, "drop table salestemp") 
+0

谢谢......但我只是简化了问题,所以我可以用更简单的方式来描述。也许不是最聪明的事情。 –

+0

我需要从sql中获取一个变量并在R中应用一个Beta分布...我想用SQL表中每行的beta分布结果更新SQL表。 –

+0

你应该更新你的问题,指定你想用任意R函数而不是乘法来更新你的sql表。还包括您使用的数据库作为答案将取决于此。 –