目前,我正在使用R在一个大型数据集上创建一些GLM模型。由于它的大小,我在revoScaleR包中使用了revoScaleR()函数--它的运行速度比基本的glm()函数快得多。
我将所有的函数调用都保存在一个R脚本中,以便以后可以复制我的工作--审计跟踪等等。
我的函数调用很长,因为我有很多因素(~50)。它们看起来都是这样的:
rxGlm_C <- rxGlm(Dependent.Variable ~
1 +
Factor 1 +
Factor 2 +
Factor 3 +
...........
Factor N,
family = tweedie(var.power = 1.5, link.power = 0),
data = myDataFrame,
pweights = "Weight.Variable",
)如果之后,我想重新运行模型,但可能只是稍微修改一下公式--通常一次只去掉一个因素--是否有任何简写符号?目前,我正在将函数调用复制并粘贴到脚本文件中,并手动删除单个行。是否有一种语法说:
“请与上次完全相同的GLM,但删除因子13"?
这样我的脚本文件就会短得多。我现在有大约3,000行代码,但我还没有完成!
谢谢。艾伦
发布于 2018-12-16 11:44:25
有两个案子。如果您正在使用myDataFrame中的所有变量,那么只需编写
rxGlm(Dependent.Variable ~ .,
family = tweedie(var.power = 1.5, link.power = 0),
data = myDataFrame, pweights = "Weight.Variable")整个模型,然后,比如说,
rxGlm(Dependent.Variable ~ . - Factor13,
family = tweedie(var.power = 1.5, link.power = 0),
data = myDataFrame, pweights = "Weight.Variable")放弃Factor13。
如果您没有使用所有变量,那么您可以保存完整的公式,比如说,
frml <- y ~ Factor1 + Factor2 + Facto3然后使用update
update(frml, ~ . - Factor3)
# y ~ Factor1 + Factor2不过,请注意,在本例中,.的意思是“与frml中相同的右侧”,而不是“前一个选项中的所有变量”。
另外,如果是后一种选择,则可以方便地使用paste和formula构建完整的公式。
https://stackoverflow.com/questions/53800751
复制相似问题