R:从我输入到用户功能的公式中提取我的响应数据

时间:2016-10-13 23:58:34

标签: r

我正在尝试创建一个对数据进行分析的函数。

目前我有,

test = function(formula, data)

因此,当我想使用我的函数时,我输入的内容如下:

test(response~predictor1+predictor+..., data = iris)

我可以通过以下方式对我的预测变量矩阵进行建模:

mat = model.matrix(formula, data)

但这并没有给我一列回复数据。我无法找到一种方法来访问我的响应数据,所以我可以实际使用它来进行计算并生成模型。如何使用此公式实际访问我的响应数据并使用它?

谢谢,

编辑:使用ISLR包中的虹膜数据的示例

功能:

test = function(formula, data){
mat = model.matrix(formula, data)
...(calculations and stuff - I don't need assistance with this part)
}

所以要使用我的功能:

model = test(Species~Sepal.Width+Sepal.Length, data = iris)

在我的函数中,我可以生成一个使用的预测变量矩阵(我称之为mat)并进行计算,但我不知道如何生成响应的矩阵/向量数据(物种)。

1 个答案:

答案 0 :(得分:0)

可能是model.response和/或model.frame

model.response(model.frame(Species~Sepal.Width+Sepal.Length, data = iris))
##      1          2          3          4          5          6          7 
## setosa     setosa     setosa     setosa     setosa     setosa     setosa 
##      8          9         10         11         12         13         14 
## setosa     setosa     setosa     setosa     setosa     setosa     setosa 
##     15         16         17         18         19         20         21