密度直方图的峰值分析 - R.

时间:2017-05-29 13:58:40

标签: r density-plot

我正在使用R语言,我不得不绘制两个样本的密度比较:

samples1:

id1 2

id2 2

id3 2

id4 2

id5 2

id6 2

id7 3

id8 3

id9 3

id10 2

和samples2:

id1 1

id2 1

id3 1

id4 1

id5 1

id6 1

id7 1

id8 2

id9 2

id10 1

第一列是ID,第二列是该ID的值。

例:

Id1 - 价值。

Id2 - 价值。

...

  • 请注意,这两个样本具有相同的大小和相同的ID,但值不同。

我使用以下代码绘制此图像:

library(ggplot2) 
library(sm)
library(scales)

x <- data.frame(read.table("C:/Users/Filli/Desktop/pasta/samples1.txt"), type = "Agregado")
y <- data.frame(read.table("C:/Users/Filli/Desktop/pasta/samples2.txt"), type = "Temporal")

data <- rbind(x,y)


print(ggplot( data, aes(x = V2, group = type)) +  geom_density(aes(fill= type), size=0, alpha=0.7))

http://prntscr.com/fdespg

我想要的是,如何找出每个密度(红色和蓝色)峰的id?例如,在这种情况下,我想在每个密度(红色和蓝色)中找到上图中红色矩形中包含的id。我不想绘制红色矩形,这只是为了说明。我想要的是从每个峰值(红色和蓝色)获取id并比较它们以查看i'ds是否相同。考虑每个密度只有一个大峰值。我想从每个峰值中获得最大的id(如上图所示)并比较它们以查看它们是相同还是不同。

1 个答案:

答案 0 :(得分:0)

您可以使用基础R density函数,ggplot用于密度图表。例如,要查找峰的位置,可以使用

density(data$V2)$x[which.max(density(data$V2)$y)]

有关详细信息,请参阅?density