我觉得这是一个相当容易的问题,但对于我的生活,我似乎无法找到答案.我有一个相当标准的数据框,我想要做的是将一列值相加,直到它们达到某个值(精确值或大于它),此时它将1放入一个新列(标记为保持)并在0处重新开始求和.
我有一列分钟,分钟,保留列和累积总和列之间的差异(我使用的示例比实际的完整数据集更清晰)
minutes difference keep difference_sum
1052991158 0 0 0
1052991338 180 0 180
1052991518 180 0 360
1052991698 180 0 540
1052991878 180 0 720
1052992058 180 0 900
1052992238 180 0 1080
1052992418 180 0 1260
1052992598 180 0 1440
1052992778 180 0 1620
1052992958 180 0 1800
Run Code Online (Sandbox Code Playgroud)
差值和列用代码计算
caribou.sub$difference_sum<-cumsum(difference)
Run Code Online (Sandbox Code Playgroud)
我想要做的是运行上面的代码,条件是,当求和值达到1470或任何大于它的数字时,它将1放入保留列,然后重新开始求和,并继续在整个数据集中运行.
在此先感谢,如果您需要更多信息,请告诉我们.
艾登
这是我的第一篇文章,希望我能解释一下我需要做些什么.我对R来说还是很新,我可能已经阅读了回答这个问题的帖子,但我不能为我的生活理解他们的意思.如果已经回答,请提前道歉.
我有一个非常大的GPS位置数据集来自radiocollars,并且每天的位置数量不一致.我想浏览数据集,并根据GPS信号的准确度选择每天的单个数据点.
所以它基本上看起来像这样.
Accuracy Month Day Easting Northing Etc
5 6 1 ####### ######## #
3.2 6 1 ####### ######## #
3.8 6 1 ####### ######## #
1.6 6 2 ####### ######## #
4 6 3 ####### ######## #
3.2 6 3 ####### ######## #
Run Code Online (Sandbox Code Playgroud)
我想在保留其余相关数据的同时,为每天提取最准确的点(最低精度度量).
目前我一直在使用tapply功能
datasub1<-subset(data,MONTH==6)
tapply(datasub1$accuracy, datasub1$day, min)
Run Code Online (Sandbox Code Playgroud)
使用这种方法,我可以成功检索最小值,每天一个,但我不能采取相关的坐标和时间,以及所有其他重要信息以及它,因为数据集是近30万行,我真的可以不要手工做.
基本上,我需要获得与tapply相同的结果,但是我需要找到该点的整个行而不是单个点.
提前感谢任何可以伸出援助之手的人.如果您需要更多信息,请告诉我,我会尽力为您服务.