2013-03-05 55 views
2

我有一個數據框,如下所示,超過1000行。我想將這些數據按1m間隔(0-1m,1-2m等)分成不同的箱子。有沒有簡單的方法來做到這一點,沒有找到最小深度,並多次使用子集命令將數據放入適當的箱子?簡單的方法來將數據子集成分箱

Temp..ºC. Depth..m. Light time  date 
1  17.31  -14.8 255 09:08 2012-06-19 
2  16.83  -21.5 255 09:13 2012-06-19 
3  17.15  -20.2 255 09:17 2012-06-19 
4  17.31  -18.8 255 09:22 2012-06-19 
5  17.78  -13.4 255 09:27 2012-06-19 
6  17.78  -5.4 255 09:32 2012-06-19 

回答

4

假設你的數據幀的名字是df,請執行下列操作:

split(df, findInterval(df$Depth..m., floor(min(df$Depth..m.)):0)) 

然後你會得到一個列表,其中每個元素是包含內有Depth..m.該行的數據幀特別是1米的間隔。

但請注意,空箱將被移除。如果你想保留它們,你可以使用cut而不是findInterval。原因是findInterval返回一個整數向量,因此split無法知道該組有效分檔是什麼。它只知道它所看到的價值,並丟棄其餘的價值。另一方面,cut返回一個因子,其中所有有效的庫都定義爲級別。

+0

這工作完美。謝謝您的幫助。 – user1997414 2013-03-05 13:37:12

相關問題