使用大于r中的函数行

时间:2015-03-29 17:25:28

标签: r

我试图在一个函数中做一个子集,但它并没有按照我希望的方式运行。这是我实际尝试运行的代码:

plot.by = function(output, plot.warming, plot.baseline, apply.dim, attribute, selection){

    par(mfrow= c(3,3))

    for(site in 1:length(output)){
    zero = apply(get(output[site])[,,attribute], c(1), sum)/32

    zero = zero[selection]
    zero = as.data.frame(zero) 
    zero = rownames(zero)
        two = get(plot.warming[site])[zero,,,]
        zero = get(plot.baseline[site])[zero,,,]


    boxplot(apply(two, apply.dim, mean) - apply(zero, apply.dim, mean), ylim = c(-200,300))
    }
}

plot.by(output= data.zero, plot.warming= aet.two, plot.baseline = aet.zero, apply.dim = c(1,3), attribute= "snowpack", selection= zero>2000)

这是我的例子:

select.by.attribute = function(data, selection){
    tmp = data[selection]
    plot(tmp)
}

select.by.attribute(data=data, selection= data>100)

我知道示例函数有效,但是我相信它只能工作,因为它在函数运行之前进行选择。如果我用干净的工作区运行我的实际代码,它会说"零"找不到。如果可能的话我想选择=> 1000而不是在那里有对象。

此外,关于如何在将来搜索这些内容或信息源的任何建议都会很棒。例如,我甚至不知道该线路被呼叫到什么地方"呼叫"功能或不同的属性使得搜索问题变得非常困难。

为我想要做的事情添加更多信息。我的数据来自水文模型,其中输出是降雪,降水,蒸发等事物的每日测量结果。最后,我试图根据某些属性(例如,降水> 2000)绘制来自这些地点的数据。所以为了做到这一点,我首先需要应用一些属性,然后我将这些特定的行名称(它们是站点名称)进行子集化,然后我在底部绘制这些站点(图表(应用是将4个维度折叠为两个)绘制他们)。

基本上我需要做很多次 - 所以我希望能够快速做到这个我想要的任何属性,无论是降水还是降雪,以及选择是> 2000或任何数字。因此,为什么我尝试了制作功能。

0 个答案:

没有答案