【问题标题】:R: Updating SQL table loop using RR:使用 R 更新 SQL 表循环
【发布时间】:2015-07-21 14:36:29
【问题描述】:

我在 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

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

【问题讨论】:

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

标签: r rodbc


【解决方案1】:

类似的东西。基本上你制作一个临时表,然后更新现有的表。您很有可能需要调整该更新语句,因为我显然无法对其进行测试。

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

【讨论】:

  • 谢谢...不过我只是简化了问题,以便以更简单的方式描述。也许不是最聪明的做法。
  • 我需要从 sql 中获取一个变量并在 R 中应用一个 beta 分布......我想用 SQL 表中每一行的 beta 分布结果更新 SQL 表。
  • 您应该更新您的问题以指定您想要使用任意 R 函数的结果而不是乘法来更新您的 sql 表。还包括您使用的数据库,因为答案将取决于此。
  • @SIMONHART 这是否满足您的需求?如果是这样,您会考虑接受答案吗?
  • 确实...非常感谢您的帮助。被接受了吗?
猜你喜欢
  • 2017-11-03
  • 2018-11-25
  • 2021-09-15
  • 2021-08-01
  • 1970-01-01
  • 2013-04-16
  • 2021-06-25
  • 2023-03-21
  • 1970-01-01
相关资源
最近更新 更多