2015-11-01 86 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()應用於每個數據幀在列表中。