我有一个列表列表,其中每个列表都包含代码(名称)及其值。这些代码对于每个列表都保持不变,但值不同。现在,我想看看这些股票代码的平均值是多少。问题是我不知道如何指定查看每个列表中的特定代码并提取值。例如,我想要这 3 个列表中“jpm”的平均值。这将是mean(c(0.08620690,0.10000000,0.10000000))= 0.095402。我怎么能这样做?
到目前为止我所拥有的:
dput(degree.l)
list(c(schwab = 0, pnc = 0.0344827586206897, jpm = 0.0862068965517241,
amex = 0.0862068965517241, gs = 0.103448275862069, ms = 0.103448275862069,
bofa = 0.103448275862069, citi = 0.103448275862069, wf = 0.120689655172414,
spgl = 0.120689655172414, brk = 0.137931034482759), c(schwab = 0.0166666666666667,
pnc = 0.05, ms = 0.0666666666666667, spgl = 0.0833333333333333,
jpm = 0.1, bofa = 0.1, wf = 0.1, amex = 0.1, gs = 0.116666666666667,
brk = 0.116666666666667, citi = 0.15), c(schwab = 0.0428571428571429,
gs = 0.0714285714285714, …Run Code Online (Sandbox Code Playgroud) 我想绘制一个小提琴 ggplot,其中 x 轴是年份,y 轴是值。每年,我都需要三个小提琴图。当我尝试这样做时,y 轴没有堆叠在一起,因此这三个轴的密度没有清楚地显示。每年,我希望它们绘制在相同的 y 轴上,并且填充颜色是透明的,以便所有三个都可以看到。该数据集相当长(很难复制较短的数据集),但它是sum1.14、sum5.14和的三个数据帧sum10.14。
plot.density.tenor <- function(cent_list_sum1,cent_list_sum5,cent_list_sum10,start_year,end_year){
df1 <- melt(ldply(cent_list_sum1, data.frame))
df5 <- melt(ldply(cent_list_sum5, data.frame))
df10 <- melt(ldply(cent_list_sum10, data.frame))
df <- rbind(df1,df5,df10)
years <- seq(start_year,end_year)
df$year <- rep(rep(as.character(seq(start_year,end_year)),each=nrow(df1)/length(years)),3)
df$tenor <- rep(c("1","5","10"),each=nrow(df1))
df$tenor <- factor(df$tenor, levels=c("1", "5", "10"))
ggplot(df, aes(year, value, color = tenor)) +
geom_flat_violin() +
ggtitle("Centrality Measure Distribution") + ylab("Centrality") + xlab("Year") +
stat_summary(colour="red", size = 0.5)
#theme(legend.position = "none")
}
plot.density.tenor(sum1.14,sum5.14,sum10.14,2010,2021)
Run Code Online (Sandbox Code Playgroud)