小编Pir*_*unt的帖子

是否有一个函数或包来模拟从lm()返回的对象的预测?

是否有单一的功能,类似于"runif","rnorm"等,它们将为线性模型产生模拟预测?我可以自己编写代码,但代码很难看,我认为这是以前有人做过的事情.

slope = 1.5
intercept = 0
x = as.numeric(1:10)
e = rnorm(10, mean=0, sd = 1)
y = slope * x + intercept + e
fit = lm(y ~ x, data = df)
newX = data.frame(x = as.numeric(11:15))
Run Code Online (Sandbox Code Playgroud)

我感兴趣的是一个看起来如下所示的函数:

sims = rlm(1000, fit, newX)
Run Code Online (Sandbox Code Playgroud)

该函数将根据新的x变量返回1000个y值模拟.

regression r lm

8
推荐指数
1
解决办法
2166
查看次数

Excel VBA - WorkbookBeforeSave事件

我有一个带有应用程序对象的加载项.该对象声明为WithEvents.这使我能够在每次用户保存文件时将一些数据点刷新到中央数据库.这大部分时间都有效.但是,有一个用户退出Excel应用程序,该用户调用"保存"对话框.看来退出Excel与未保存的文件意味着WorkbookBeforeSave事件不会触发.

需要强调的是,我已经确认当用户点击CTRL-S或按下保存按钮时该事件会触发.我还确认,如果我退出该应用程序,该事件不会触发.

我可以想到一些解决方法(例如,每10秒自动保存一次),但我并不为此疯狂.任何人都可以确认这种行为和/或是否有人有补救措施?

Option Explicit

Private WithEvents mapp As Excel.Application

Private Sub mapp_WorkbookBeforeSave(ByVal Wb As Workbook, ByVal SaveAsUI As Boolean, Cancel As Boolean)

    ' Sanity preservation device
    Msgbox "WorkbookBeforeSave event fired."
    SaveSomeData Wb

End Sub
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

5
推荐指数
2
解决办法
1465
查看次数

什么时候在 R 中调用 S4 对象的访问器方法?

不太确定如何在不深入了解我的特定编程问题的情况下提出这个问题。所以,这个问题有点相关,但要简单得多。我试图了解 R 在分配给 S4 类的插槽时适用的程序。我有自定义访问和分配功能,“$”和“$<-”。

我注意到两点:

  1. 当我使用括号对特定插槽进行子集化时,分配将起作用,即使我没有提供任何这样做的机制。我相信这只是 R 对矢量化代码的热切拥抱。这很好,但是如果我想启用不同的子集逻辑怎么办?在下面的玩具示例中,假设我想根据与生日的匹配进行子集化。
  2. 分配给子集插槽时,将调用“$”访问器。为什么是这样?

以下是用于说明的玩具示例。非常感谢对第 1 点的评论和对第 2 点的回答。

setClass("Person"
     , representation(FirstName = "character"
                      , LastName = "character"
                      , Birthday = "Date")
)

setMethod("$", signature(x = "Person"), function(x, name) {
  print("Just called $ accessor")
  slot(x, name)
})

setMethod("$<-", signature(x = "Person"), function(x, name, value) {
 print("Just called $ assignment")
  slot(x, name) = value
  x
})

objPeople = new("Person"
                , FirstName=c("Ambrose", "Victor", "Jules")
                , LastName=c("Bierce", "Hugo", "Verne")
                , Birthday=seq(as.Date("2001/01/01"), as.Date("2003/12/31"), by="1 year"))

# This assignment …
Run Code Online (Sandbox Code Playgroud)

r s4

1
推荐指数
1
解决办法
560
查看次数

标签 统计

r ×2

excel ×1

excel-vba ×1

lm ×1

regression ×1

s4 ×1

vba ×1