R 权重由另一个变量确定

R 权重由另一个变量确定,r,ggplot2,tidyverse,ggridges,ridgeline-plot,R,Ggplot2,Tidyverse,Ggridges,Ridgeline Plot,我试图用脊线图来可视化一些数据,但我想知道是否有一种方法可以加权脊线的密度 基本上,我有以下几点: set.seed(1) example <- data.frame(matrix(nrow=100,ncol=3)) colnames(example) <- c("year","position","weight") example$year <- as.character(rep(c(1,2,3,4,5),each=20) ) example$position <- r

我试图用脊线图来可视化一些数据,但我想知道是否有一种方法可以加权脊线的密度

基本上,我有以下几点:

set.seed(1)
example <- data.frame(matrix(nrow=100,ncol=3))
colnames(example) <- c("year","position","weight")
example$year <- as.character(rep(c(1,2,3,4,5),each=20) )
example$position <- runif(100,1,10)
example$weight <- sample(1:3,100,replace = T)
我在想,我可以尝试通过管道将数据集中的行重复它们拥有的权重值的数量,这样它们将被计数超过x次(或“权重”次数),并改变密度。但我不知道怎么做。另外,在我的数据集中,权重不是整数,所以我希望有更好的解决方案


或者,是否有其他软件包/技术可以实现这一点?

对于此数据集,我们可以基于
权重
列重复行,然后绘制:

库(ggplot2)
图书馆(GG)
示例2拾取接头带宽为1.02

但是,如果您的wights不是整数,这将不起作用。有一种感觉,你可能想试一试


另一个想法是将原始数据集中的权重标准化为整数,方法是将它们四舍五入到特定数字,然后将它们乘以10,再乘以所需精度的幂。然后,您可以对实际数据集使用上一个解决方案。

对于此数据集,我们可以基于
权重
列重复行,然后绘制:

库(ggplot2)
图书馆(GG)
示例2拾取接头带宽为1.02

但是,如果您的wights不是整数,这将不起作用。有一种感觉,你可能想试一试

另一个想法是将原始数据集中的权重标准化为整数,方法是将它们四舍五入到特定数字,然后将它们乘以10,再乘以所需精度的幂。然后,您可以对实际数据集使用以前的解决方案

ggplot(example,aes(x=position,y=year))+
  ggridges::geom_density_ridges()+
  theme_classic()