【发布时间】:2023-03-30 10:20:01
【问题描述】:
我正在使用 R 语言,我必须绘制两个样本的密度比较:
样本1:
id1 2
id2 2
id3 2
id4 2
id5 2
id6 2
id7 3
id8 3
id9 3
id10 2
和样本2:
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))
我想要的是,如何找出每个密度(红色和蓝色)峰值的 id?例如,在这种情况下,我想为每个密度(红色和蓝色)找到上图中红色矩形中包含的 id。我不想绘制红色矩形,这只是为了说明。我想要的是从每个峰值(红色和蓝色)中获取 id 并比较它们以查看 id 是否相同。考虑到每个密度只有一个大峰。我只想从每个峰中获取最大的 id(如上图)并比较它们以查看它们是相同还是不同。
【问题讨论】:
-
可能类似于
maxID1 <- df1$ID[df1$val == max(df1$val)]和 df2 类似。然后您可以使用intersect或setdiff或setequal来查找重叠。您可能必须使用as.character将这些向量转换为字符。 -
我认为这是错误的!因为密度计算和你做的不一样,所以结果是错误的:S
标签: r density-plot