我无法让qqnorm在FOR循环中工作

时间:2019-09-30 16:58:55

标签: r loops plot subset

我正在尝试以10只股票的价格构建qq图。

我想使用FOR循环构建这些图,但是却收到错误消息-如何修复代码?

我从Yahoo Finance下载了股票的股价。我只提取了每日调整后的价格,然后将它们组合成一个包含十列的数据框。我没有在数据框中添加日期。

代码如下:

par(mfcol=c(2,5),mar=c(2,2,2,2))
for(varname in names(stocks)) {
  qqnorm(stocks[varname])
}

我收到错误消息“错误:必须在[中使用向量,而不是类矩阵的对象。”

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

qqnorm在输入中采用向量:

  

qqnorm(y,...)

     

y 第二个或唯一的数据样本。

您可以像这样从数据框中获取y

df[[stock_name]]
df$stock_name

或者,如果要处理矩阵:

mat[, col_number]
mat[, stock_name]

这是一个简单的例子:

s <- matrix(rnorm(1000), 100, 10)
colnames(s) <- letters[1:10]


for (i in colnames(s)){
  qqnorm(s[,i])
}