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