R:使用R更新SQL表循环

时间:2015-07-21 14:36:29

标签: r rodbc

我在R上使用RODBC包,它允许我使用R连接到SQL。

作为我的问题的一个例子,我在SQL中有一个表[Sales],有3列(Alpha,Beta,BetaDistribution)。

1.50,77中,x

2.99,53中,x

4.50,122,X

请注意,未填充第3列(BetaDistribution),需要使用统计R函数填充此列。

我已将表格分配给变量SELECT

select< - sqlQuery(dbhandle,' select * from dbo.sales')

如何运行循环来更新我的sql表,以便使用计算的Beta分布更新BetaDistribution列 - pbeta(alpha,beta)

1 个答案:

答案 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")