【问题标题】:Graphing with Loops in R在 R 中使用循环绘图
【发布时间】:2017-09-26 15:59:24
【问题描述】:

我正在尝试使用循环来根据条件 (class(variable)='numeric') 绘制直方图,但我没有得到任何输出,我不知道为什么。

代码:

for (i in length(df)){
  if (class(df[,i])=="numeric"){
   hist(df[,i])
  }
}

hist(df[,15]) 返回一个直方图,并且 class(df[,15]) = 'numeric',所以我不确定错误来自哪里。

【问题讨论】:

  • 您遇到错误了吗?如果有,请分享。我无法重现。如果我将代码中的df 替换为mtcars,我会得到11 个直方图。你能举一个可重现的例子吗?
  • 也就是说,我建议使用is.numeric(df[, i]) 而不是class(df[,i])=="numeric"。它会更加健壮。
  • 在您的第一行代码中,您可能是指 for (i in 1:length(df)){。就这段代码而言,它只会做最后一张图。
  • Gregor,我没有收到错误,只是没有输出。露西发现这是一个错字——长度(df)中的 i 应该是 1 中的 i:长度(df)

标签: r loops histogram graphing


【解决方案1】:

我认为您可能只是有一个小错字 - 它应该是 for (i in 1:length(df)) 而不是 length(df) (后者只会为最后一列生成一个图)。这是一个简单的例子:

df <- ChickWeight
for (i in 1:length(df)){
  if (is.numeric(df[, i])) {
   hist(df[, i])
  }
}

编辑:刚刚看到@Richard Lusch 在我输入答案时已经对此发表了评论(我讨厌这种情况发生!)如果你想发布你的答案,我可以删除我的!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-20
    • 1970-01-01
    • 2022-01-05
    • 2020-02-26
    • 2019-03-26
    • 2021-05-25
    • 1970-01-01
    相关资源
    最近更新 更多