【问题标题】:CSV file to Histogram in RCSV文件到R中的直方图
【发布时间】:2013-11-17 06:48:27
【问题描述】:

我是 R 的新手,我正在尝试从 csv 文件(只有一行值)创建一个直方图(以值和频率为轴)。知道我该怎么做吗?

【问题讨论】:

    标签: r csv histogram


    【解决方案1】:

    我也是一个 R 新手,我遇到了同样的事情。实际上,我犯了两个不同的错误,所以我将在这里描述它们。

    错误 1:将频率表传递给 hist()。 最初我试图将频率表传递给 hist(),而不是传递原始数据。解决此问题的一种方法是使用rep()(“复制”)函数将您的频率表分解回原始数据集,如下所述:

    不过,我只是决定读入我的原始数据集而不是频率表。

    错误 2:错误的数据类型。 我的原始数据 CSV 文件包含两列:hostnamebookings(想法是计算每个主机在给定时间段内生成的预订数量)。我将其读入表格。

    > tbl <- read.csv('bookingsdata.csv')
    

    然后,当我尝试从第二列生成直方图时,我这样做了:

    > hist(tbl[2])
    

    这给了我您在评论中提到的“'x' 必须是数字”错误。 (它试图将“bookings”列标题作为数据值读取。)

    这解决了它:

    > hist(tbl$bookings)
    

    【讨论】:

      【解决方案2】:

      你真的应该开始阅读一些基本的 R 手册...... CRAN 提供了很多(查看手册和贡献部分)

      无论如何:

      setwd("path/to/csv/file")
      myvalues <- read.csv("filename.csv")
      hist(myvalues, 100) # Example: 100 breaks, but you can specify them at will
      

      请参阅这些功能的手册页以获取更多帮助(可通过?read.table?read.csv?hist 访问)。

      【讨论】:

      • 谢谢!我收到一个错误“hist.default(myvalues, 100) 中的错误:'x' 必须是数字”。我尝试将 myvalues 转换为 asnumeric,但它似乎不起作用(给出错误“hist.default(myvalues) 中的错误:'breaks' 的数量无效”)。知道发生了什么吗?
      • 如果没有可重现的示例(代码 + 示例数据),很难说出了什么问题。请将dput(myvalues) 的输出粘贴到您上面的问题中。
      • 同意@Paul,我们确实需要您的数据示例来说明更多信息。
      • 你需要类似hist(myvalues[,1])
      【解决方案3】:

      要绘制直方图,值必须是数值类,即数据必须是数值。这里 x 的值似乎属于其他类。

      运行以下命令看看:

      sapply(myvalues[1,],class)
      

      【讨论】:

        最近更新 更多