我想使用 vioplot 库生成一些小提琴图。不幸的是,vioplot将向量作为参数。所以它的工作原理如下,但它很难看:
library(vioplot)
x1 = rnorm(200, 10, 5)
x2 = rnorm(200, 20, 5)
x3 = rnorm(200, 30, 5)
x4 = rnorm(200, 10, 15)
x5 = rnorm(200, 10, 25)
x6 = rnorm(200, 20, 35)
x7 = rnorm(200, 40, 15)
x8 = rnorm(200, 50, 15)
// x9 and more .....
// plot
vioplot(x1,x2,x3,x4,x5,x6,x7,x8)
// vioplot(x1 to x20 ) ?
如何通过循环改进它?
我想做点什么:
// Generate a random data frame
df = data.frame()
for (i in 1:100)
{
df = cbind(df, rnorm(200, 10, i))
}
// This line is not working
vioplot(df[1:15],)
我想我需要一些元编程来生成我的参数列表
答案 0 :(得分:0)
我成功使用元编程如下:
arguments = list()
for (i in 1:15)
{
arguments[[i]] = rnorm(100, i) // positionnal arguments
}
arguments[["col"]] = "red" // named arguments
do.call("vioplot", arguments)