限制R中数据帧列表中的值范围

时间:2015-11-01 20:48:44

标签: r lapply

我在R中有288个ASCII数据帧的列表dataframes,其中包含值及其坐标。数据是针对每个小时的平均温度,因此数据框的标题范围为jan_01dec_24。我想要做的是限制它们,使它们减少到仅包含特定范围(区域)坐标的值。我可以使用下限xl和上限xu为每个单独的帧成功完成此操作。例如,使用

限制4月份01:00的x坐标
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])
}

1 个答案:

答案 0 :(得分:0)

事实证明这很简单。这是解决我问题的代码:

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

dataframes <- lapply(dataframes, restrict)

restrict函数将x坐标限制为我感兴趣的内容,然后我使用lapply()将其应用于列表中的每个数据框。