我正在运行monte-carlo模拟,输出格式如下:
> d = data.frame(iter=seq(1, 2), k1 = c(0.2, 0.6), k2=c(0.3, 0.4))
> d
iter k1 k2
1 0.2 0.3
2 0.6 0.4
Run Code Online (Sandbox Code Playgroud)
我想要生成的图是:
plot(d$iter, d$k1)
plot(density(d$k1))
Run Code Online (Sandbox Code Playgroud)
我知道如何使用ggplot2进行等效绘图,转换为数据框
new_d = data.frame(iter=rep(d$iter, 2),
k = c(d$k1, d$k2),
label = rep(c('k1', 'k2'), each=2))
Run Code Online (Sandbox Code Playgroud)
然后绘图很容易.然而,迭代次数可能非常大,并且k的数量也可能很大.这意味着搞乱一个非常大的数据框架.
无论如何,我可以避免创建这个新的数据框架?
谢谢