【发布时间】:2013-10-28 15:14:53
【问题描述】:
我当然希望我清楚地提出我的问题。所以,我试图在 R 中拆分某个 df。这是一个很大的 df,您可以在下面看到(缩短的)结构。
'data.frame':36993 obs。 n 个变量:
$ klasse : 数字 1 1 1 1 1 1 1 1 1 1 ...
$ Start_time: chr "23:56:09.000" "23:56:09.000" "23:56:09.000" "23:56:09.000" ...
$ start_date:日期,格式:“2013-08-31”“2013-08-31”“2013-08-31”“2013-08-31”...
$牛奶:数量 23.5 23.5 23.5 23.5 23.5 23.5 23.5 23.5 23.5 23.5 ...
$ duur_visit: 数量 1048 1048 1048 1048 1048 ...
现在,我要做的是在 df$klasse 中将 df 拆分为 120 个观察值的一部分,其中包含 39 个不同长度的不同元素(例如 1 = 1048 obs,2 = 239 obs 等) .此外,我想对这些组进行编号,对于 df$klasse 的每个新元素,它们每次都从 1 开始。
我是一个菜鸟,我得到的最远的结果是发现我可能必须使用包 stringr,但是,我不确定。或者使用函数split,结合lapply。关于拆分和分组变量的主题有很多信息,我迷路了。如果有人可以帮助我,或者在正确的方向上推动我,我将不胜感激。
编辑
@shadow 的代码似乎是在正确的方向上,但它在我的数据集“超出”120 个观察值的地方切断了我的数据集。所以,我将尝试举例说明我会做什么喜欢完成:
> within df
klasse grp Start_time
1 1 2013-08-31 02:54:35.000
1 1 2013-08-31 02:54:35.000
1 2 2013-08-31 02:54:35.000
1 2 2013-08-31 02:54:35.000
1 3 2013-08-31 02:54:35.000
2 1 2013-08-31 08:36:13.000
2 1 2013-08-31 08:36:13.000
2 2 2013-08-31 08:36:13.000
2 2 2013-08-31 08:36:13.000
2 3 2013-08-31 08:36:13.000
2 3 2013-08-31 08:36:13.000
2 4 2013-08-31 08:36:13.000
3 1 2013-09-01 15:01:40.000
3 1 2013-09-01 15:01:40.000
4 1 2013-09-01 23:51:54.000
当然我把它缩短到每组只有 2 个数字,否则它会变得很大,但实际上在组列中我希望组的 最大 120 倍于数字 1、2 和很快。我希望我把它清除了一点?
编辑 2
是的,我今天早上再次运行它,@shadow 的解决方案运行良好!我不知道我昨天做错了什么。
【问题讨论】:
-
请查看link。一个良好的可重复示例将帮助其他人更轻松地解决您的问题。