【发布时间】:2018-02-24 14:20:53
【问题描述】:
我有一个数据集,我需要在其中绘制每个变量。我为此做了一个循环,因为数据集包含 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)) 函数添加到上面的函数来做到这一点,但这不起作用。你们对如何做到这一点有任何想法吗?
【问题讨论】:
-
对于
plot函数,我倾向于使用for循环而不是lapply。我没有遇到像你在这里提到的for(...){; plot(...); abline(...); };的问题。 -
你不是说你加了
abline(h=mean(Data[,x]))吗?也可能是由于专栏中的NAs;使用mean(Data[,x], na.rm=TRUE)。 -
@MrGumble 谢谢!这成功了。我认为这是由于 NA 的原因,它无法正常工作。您是否还知道我如何添加 2 行,一条高于平均值 20%,另一条低于 x 平均值 20%,仅用于数据集中的最后 5 个 x 值?
标签: r function loops plot lines