2015-11-01 99 views
0

我有一个包含值为R及其坐标的R中288个ASCII数据帧的列表dataframes。数据是按月每小时的平均温度,所以数据帧的标题范围从jan_01dec_24。我想要做的就是限制它们,使它们减少到只包含坐标特定范围(区域)的值。我可以使用下限xl和上限xu成功完成每个单独的帧。例如,在四月的x坐标为01:00将通过在R中的数据帧列表中限制值的范围

apr_01 <- apr_01[apr_01$x <= xu,] 
apr_01 <- apr_01[apr_01$x >= xl,] 

限制我怀疑有某种方式使用lapply()或系列回路,使这种操作可以做所有的数据帧整年,但我无法弄清楚如何实现它,因为我上面的方法需要唯一的数据框名称。我试着用lapply()来编写一个可以普遍使用的函数,但我是R的新手,所以没有太多的运气。这可能是一个微不足道的问题,但任何帮助,将不胜感激!

编辑:我试着写,这显然是行不通的功能,是像

restrict <- function(f){ 
    f <- f[f$s1 <= xu] 
    f <- f[f$s1 >= xl] 
} 

for(i in 1:24){ 
    apr_[i] <- restrict(apr_[i]) 
} 
+0

请考虑阅读[问]和如何产生[可重现的例子](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。一种方法可以是使用lapply的自定义函数。 – Heroka

回答

0

事实证明,这是非常简单的。下面是解决我的问题代码:

restrict <- function(f){ 
    f <- f[f$x <= xu,] 
    f <- f[f$x >= xl,] 
} 

dataframes <- lapply(dataframes, restrict) 

restrict功能限制的x坐标,以什么我感兴趣的,然后我就用lapply()应用于每个数据帧在列表中。