2013-02-15 72 views
-1

我试图首次使用R.lm(y〜x * g)忽略g的一个值

在这种情况下,y是耗氧量,x是时间,g是最多由三个字母(NYF,IR,F,M或NF)表示的状态。它会运行回退除了楼梯以外的每个状态。

[注:我也试着用多个回归使用子集函数来完成此操作。当我使用

lm(O2~time,subset(data,Status=="NYF")) 

它实际上并没有坚持子集,并让我对整个数据,而不管其状态我进入设置一个回归。

如何根据status列中的代码从单个数据集中获取多个简单线性回归?

+0

你在说什么状态栏?对于这个问题,你的问题的背景是什么 - Excel? Matlab的? R'还有别的吗? – 2013-02-15 16:54:37

+0

对不起,我正在使用R.“状态”是我的数据中的一列,其中包含我要按数据排序的代码。 – user2076298 2013-02-15 17:00:04

+1

你知道使用分类变量做回归将是参考吗?而且,默认情况下,它是排序中的第一个... – Rcoster 2013-02-15 17:05:58

回答

0

你的问题不清楚。假设您有一个数据框dd,有三列:y,x,g。变量yx是数字,而g取值NYF,IR,F,MNF。进行简单的线性回归为特定状态,则:

lm(y ~ x, data=dd[dd$g=="NYF",]) 
#Or 
lm(y ~ x, data=dd[dd$g=="IR",]) 

要执行多次线性回归,尝试

lm(y ~ x + g, data=dd) 

其中本或不存在的一个因素是由二进制变量表示。

+0

对不起,问题并不清楚,我是R新手,而且我不太清楚正确的术语。无论如何,谢谢你试着回答它。你的方法似乎工作! – user2076298 2013-02-15 17:25:33

0

流明(Y〜X,子集(DD,G == 'NYF'))

是适当的语法,以适应单个状态行(虽然别人给你的变种,将工作)。我会检查以确保您的数据框确实被命名为“数据”,并且您的状态变量被命名为“状态”。