Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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中的循环函数中向绘图中添加线(例如a线)_R_Function_Loops_Plot_Lines - Fatal编程技术网

如何在R中的循环函数中向绘图中添加线(例如a线)

如何在R中的循环函数中向绘图中添加线(例如a线),r,function,loops,plot,lines,R,Function,Loops,Plot,Lines,我有一个数据集,需要在其中绘制每个变量。我为此做了一个循环,因为数据集包含大约50个变量。到目前为止,我得到的是: invisible(lapply(colnames(Data),function(x){ plot(Data[,x],main=x,type="l", xlab= 'Week number', ylab='Amount') })) 这会自动将数据集中的所有变量绘制在单独的绘图中。但是,我需要在所有这些图中绘制线。我的想法是为每个x加一条平均线。所以在高度上有一条水平线,它对应于平

我有一个数据集,需要在其中绘制每个变量。我为此做了一个循环,因为数据集包含大约50个变量。到目前为止,我得到的是:

invisible(lapply(colnames(Data),function(x){
plot(Data[,x],main=x,type="l", xlab= 'Week number', ylab='Amount')
}))
这会自动将数据集中的所有变量绘制在单独的绘图中。但是,我需要在所有这些图中绘制线。我的想法是为每个x加一条平均线。所以在高度上有一条水平线,它对应于平均值x。我试图通过在上面的函数中添加abline(h=mean(x))函数来实现这一点,但这不起作用。你们对怎么做有什么想法吗?

你们应该使用

abline(h=mean(Data[,x]))
不是

因为每次x都是一个colnames。要检查,请使用此代码

Data<-matrix(sqrt(1:20),ncol=4)
colnames(Data)<-c(letters[1:4])
par(mfrow=c(2,2))

invisible(lapply(colnames(Data),function(x){
plot(Data[,x],main=x,type="l", xlab= 'Week number', ylab='Amount')
abline(h=mean(Data[,x]))
}))

data对于
plot
函数,我倾向于将
用于
循环,而不是
lappy
。我没有任何问题像你在这里提到的(…){;plot(…);abline(…);}。你的意思是你添加了
一条线(h=平均值(数据[,x]))
?也可能是由于列中的
NA
s;使用
平均值(数据[,x],na.rm=TRUE)
@MrGumble谢谢!这就成功了。我认为这是由于NA的原因,它不起作用。您还知道如何添加两行,一行高于平均值20%,另一行低于平均值20%,仅针对数据集中的最后5个x值?
Data<-matrix(sqrt(1:20),ncol=4)
colnames(Data)<-c(letters[1:4])
par(mfrow=c(2,2))

invisible(lapply(colnames(Data),function(x){
plot(Data[,x],main=x,type="l", xlab= 'Week number', ylab='Amount')
abline(h=mean(Data[,x]))
}))