我有一个数据框,如下所示,超过1000行。我希望将数据按1m间隔(0-1m,1-2m等)分组到箱中。是否有一种简单的方法可以在不找到最小深度的情况下执行此操作并多次使用subset命令将数据放入适当的箱中?
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
答案 0 :(得分:4)
假设您的数据框名称为df
,请执行以下操作:
split(df, findInterval(df$Depth..m., floor(min(df$Depth..m.)):0))
然后,您将获得一个列表,其中每个元素都是一个数据框,其中包含在特定1米间隔内具有Depth..m.
的行。
请注意,将删除空箱。如果您想保留它们,可以使用cut
代替findInterval
。原因是findInterval
返回一个整数向量,使split
无法知道有效二进制集是什么。它只知道它看到的值并丢弃其余的值。另一方面,cut
返回一个因子,该因子将所有有效的二进制文件定义为级别。