【发布时间】:2014-05-23 04:10:58
【问题描述】:
这可能很愚蠢,但我不知道该怎么做,
我想要什么?
我的功能是这样的。
plot_exp <-
function(i){
dat <- subset(dat.frame,En == i )
ggplot(dat,aes(x=hours, y=variable, fill = Mn)) +
geom_point(aes(x=hours, y=variable, fill = Mn),size = 3,color = Mi) + geom_smooth(stat= "smooth" , alpha = I(0.01))
}
ll <- lapply(seq_len(EXP), plot_exp)
do.call(grid.arrange, ll)
我有两个变量 Var1、Var2(会通过命令行传递,所以不能使用子集进行分组)
我想为 var1 和 var2 运行上述函数,我的函数为每个完整的执行生成两个图。所以现在它应该为 var1 生成 2 个图,为 var2 生成两个图。
我只想知道如何应用这里的逻辑来处理我想要的?谢谢
这就是 data.frame 的样子
En Mn Hours var1 var2
1 1 1 0.1023488 0.6534707
1 1 2 0.1254325 0.5423215
1 1 3 0.1523245 0.2542354
1 2 1 0.1225425 0.2154533
1 2 2 0.1452354 0.4521255
1 2 3 0.1853324 0.2545545
2 1 1 0.1452369 0.2321542
2 1 2 0.1241241 0.2525212
2 1 3 0.0542232 0.2626214
2 2 1 0.8542154 0.2154522
2 2 2 0.0215420 0.5245125
2 2 3 0.2541254 0.2542512
我会将上面的 data.frame 表作为输入,我想为 var1 运行一次函数并生成两个图,然后再次为 var2 运行相同的函数并再生成两个图,然后使用网格组合所有这些。安排。
我必须从命令行读取变量值,然后我必须执行以下操作才能从主数据框中获取所需的数据。
subset((aggregate(cbind(variable1,variable2)~En+Mn+Hours,a, FUN=mean)))
在我从命令行读取并将它们存储在“variable1”和“variable2”中之后,如果我在上面的命令中直接调用它们,它就不起作用了。我应该怎么做才能在命令行中输入这两个变量值。
【问题讨论】:
-
那么
i就是dat.frame中带有变量名的字符串?而En是dat.frame中的另一列?您想在这两列相等的地方进行子集化吗?在dat.frame中还有另外两个名为hours和variable的列是您真正想要绘制的? -
@MrFlick 我已添加 dta.frame 请检查。