Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/81.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_Plot - Fatal编程技术网

R &引用;“阿卜林”;不';“以后不要工作”;“地块”;“当在里面时”;加上;

R &引用;“阿卜林”;不';“以后不要工作”;“地块”;“当在里面时”;加上;,r,plot,R,Plot,我想创建一个散点图,并为数据集的子集绘制回归线。为了给出一个可重复的示例,我将使用CO2数据集 我试过了,但由于某种原因,回归线没有出现 with(subset(CO2,Type=="Quebec"),plot(conc,uptake),abline(lm(uptake~conc))) 发出这样的命令的正确方式是什么?我可以用一行程序吗?从用:用。。。在使用数据创建的本地环境中计算expr。您正在通过…传递abline()。您需要这样做: with(subset(CO2,Type=="Queb

我想创建一个散点图,并为数据集的子集绘制回归线。为了给出一个可重复的示例,我将使用CO2数据集

我试过了,但由于某种原因,回归线没有出现

with(subset(CO2,Type=="Quebec"),plot(conc,uptake),abline(lm(uptake~conc)))

发出这样的命令的正确方式是什么?我可以用一行程序吗?

。。。在使用
数据创建的本地环境中计算
expr
。您正在通过
传递
abline()
。您需要这样做:

with(subset(CO2,Type=="Quebec"),{plot(conc,uptake);abline(lm(uptake~conc))})

您需要将两行代码作为一个R表达式提供。
abline()
将作为
with()
的后续参数,该参数是
..
参数。这是一种将参数传递给未来方法的方法,但最终的结果是这部分代码实际上是一个黑洞

两个选项,i)保留一行,但将表达式包装在
{
}
中,并用
分隔这两个表达式

with(subset(CO2,Type=="Quebec"), {plot(conc,uptake); abline(lm(uptake~conc))})
或者将表达式展开两行,仍然用
{
}
包装:

with(subset(CO2,Type=="Quebec"), 
     {plot(conc,uptake)
      abline(lm(uptake~conc))})

编辑:老实说,如果你在做这样的事情,你就错过了通过R的模型公式进行子集设置的优势。我会这样做:

plot(uptake ~ conc, data = CO2, subset = Type == "Quebec")
abline(lm(uptake ~ conc, data = CO2, subset = Type == "Quebec"), col = "red")

with()
只会使您用大括号和
混淆代码

加文和约书亚为您眼前的问题提供了很好的解决方案;以下是使用ggplot的等效图:

library(ggplot2)
qplot(conc, uptake, data = CO2[CO2$Type == "Quebec" , ]) + stat_smooth(method = "lm", se = FALSE)

在你的“编辑”中有很棒的建议。到目前为止,这是正确的方法。只是我不想给出一系列的限制。这可能很危险。