2015-07-21 75 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表。還包括您使用的數據庫作爲答案將取決於此。 –