8

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

4

3 回答 3

10

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

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

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

错误2:错误的数据类型。我的原始数据 CSV 文件包含两列:hostnamebookings(想法是计算每个主机在给定时间段内生成的预订数量)。我把它读到一张桌子上。

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

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

> hist(tbl[2])

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

这修复了它:

> hist(tbl$bookings)
于 2014-03-25T23:20:11.103 回答
6

你真的应该开始阅读一些基本的 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)。

于 2013-11-06T06:07:20.987 回答
4

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

运行以下命令并查看:

sapply(myvalues[1,],class)
于 2013-11-06T07:20:30.953 回答