问:我如何创建一个带有两个变量的直方图?

时间:2018-11-24 18:34:50

标签: r

好的,让我尽可能清楚地说明问题。我是R的新手,所以感谢您的耐心配合。 我想使用两个不同的向量创建直方图。第一个向量包含模型(产品)列表。这些模型以整数,字符串或NA的形式列出。我不确定R如何存储它们(我假设它们以字符串形式保存),或者这是否是相关问题。我还有一个向量,其中包含与该模型有关的事件列表。因此,例如,数据框中的一行可能是:

Model    Incidents
XXX1991  7

如何创建直方图,以显示每个模型的事件数量?所以直方图看起来像

             |           =
             |           = 
Frequency of |           =
Incidents    | =         = 
             | =   =     =
             | = = = =   = 
               - - - - - - 
             Each different Model

只是给出一个大致的想法。

我还需要能够使用标准偏差线绘制所有内容,以便轻松查看哪些模型最不可靠。但这不是这里的主要问题。我只是不想做任何使我将来无法使用标准差的事情。

到目前为止,我真正了解的是如何制作带有频率标记的直方图,但是由于某些原因,x轴标记有数字,而不是模型名称。

我不太在乎是否必须下载新软件包才能使它工作,但是我怀疑它已经存在于基本R或ggplot2中,并且我太傻了以至于无法弄清楚。

随时提出明确的问题。谢谢。

编辑:我忘了提及,每种模型下都列出了多行事件。因此,在前面的示例中添加:

Model    Incidents
XXX1991  7
XXX1991  1
XXX1991  19
         3
         5
XXX1002  9
XXX1002  4
etc . . . 

我想将一个模型的所有事件加在一起。

1 个答案:

答案 0 :(得分:0)

我假设您并不是要在示例中将模型留空,所以我填写了一些值。

您可以使用aggregate按模型将事件总数相加,然后使用barplot进行相关绘制。

## Example Data
data = read.table(text="Model    Incidents
XXX1991  7
XXX1991  1
XXX1991  19
XXX1992  3
XXX1992  5
XXX1002  9
XXX1002  4",
header=TRUE)

TAB = aggregate(data$Incidents, list(data$Model), sum) 
TAB
Group.1  x
1 XXX1002 13
2 XXX1991 27
3 XXX1992  8

barplot(TAB$x, names.arg=TAB$Group.1 )

Barplot