Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R:解析语言对象以获取公式_R_Systemfit - Fatal编程技术网

R:解析语言对象以获取公式

R:解析语言对象以获取公式,r,systemfit,R,Systemfit,我正在尝试解析选择对象(由包中的选择函数返回),以便它适合于构建公式对象(从) 下面是我想要的一个具体例子。我脑子里有一个策略,但要使该策略起作用,我需要更好地理解R语言数据类型 我基本上是在下面的上下文中寻找对R语言数据类型/对象的解释 以下是一个例子: library(Formula) library(sampleSelection) data(Mroz87) # define a new variable Mroz87$kids = (Mroz87$kids5 + Mroz87$kids

我正在尝试解析
选择
对象(由包中的
选择
函数返回),以便它适合于构建
公式
对象(从)

下面是我想要的一个具体例子。我脑子里有一个策略,但要使该策略起作用,我需要更好地理解R
语言
数据类型

我基本上是在下面的上下文中寻找对R
语言
数据类型/对象的解释

以下是一个例子:

library(Formula)
library(sampleSelection)
data(Mroz87)
# define a new variable
Mroz87$kids  = (Mroz87$kids5 + Mroz87$kids618 > 0)
# create the estimation sample
Mroz87Est = Mroz87[1:600, ]
# create the hold out sample
Mroz87Holdout = Mroz87[601:nrow(Mroz87), ]
# estimate the model using MLE
heckML =  selection(selection = lfp ~ age + I(age^2) + faminc + kids + educ,
         outcome = wage ~ exper + I(exper^2) + educ + city, data = Mroz87Est) 
summary(heckML)  
此代码估计Heckman样本选择模型,类
selection
的模型对象可在
heckML
中找到。它有一个复杂的结构,可以通过调用
str(heckML)
看到

我需要能够通过
选择
对象
heckML
以编程方式填充
公式
对象:

FormHeck = Formula(lfp |  wage ~ age + I(age^2) + faminc + kids + educ | 
                     exper + I(exper^2) + educ + city)
用于下游加工

我知道我需要填充的所有组件都可以在
heckML$call$selection
heckML$call$outcome
中找到,我可以这样使用它

tempS = evalq(heckML$call$selection)
tempO = evalq(heckML$call$outcome)

as.Formula(paste0(tempO[2], '|', tempS[2], '~', tempO[3], '|', tempS[3]))
但我不知道为什么会这样。请注意,
temp
tempO
语言类型的对象

a。
evalq
language
对象有什么作用?它应该做什么?
B
语言
对象与
表达式
对象有何不同?什么时候使用? 欢迎阅读指南

最后,我想知道是否有更好的方法来填充
Formula
对象
FormHeck
表单返回对象
heckML
。以上只是一种有效的策略,在我理解原因之前,它基本上是一种黑客行为

谢谢