我在R中有288个ASCII数据帧的列表dataframes
,其中包含值及其坐标。数据是针对每个小时的平均温度,因此数据框的标题范围为jan_01
到dec_24
。我想要做的是限制它们,使它们减少到仅包含特定范围(区域)坐标的值。我可以使用下限xl
和上限xu
为每个单独的帧成功完成此操作。例如,使用
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 :(得分:0)
事实证明这很简单。这是解决我问题的代码:
restrict <- function(f){
f <- f[f$x <= xu,]
f <- f[f$x >= xl,]
}
dataframes <- lapply(dataframes, restrict)
restrict
函数将x坐标限制为我感兴趣的内容,然后我使用lapply()
将其应用于列表中的每个数据框。