我有一个相对较大的数据集(16,000 + x〜31)。换句话说,它足够大,我不想在Excel中逐行处理它。该数据是这种形式:如何根据R中其他列中的值添加计数列
block site day X1 X2
1 1 1 0.4 5.1
1 1 2 0.8 1.1
1 1 3 1.1 4.2
1 2 1 ... ...
1 2 2
1 2 3
2 3 1
2 3 2
2 3 3
2 4 1
2 4 2
2 4 3
正如你可以看到,网站数是连续的,但我想在网站数量与每块重设一列。例如,我想这样的事情如下:
block site day X1 X2 site2
1 1 1 0.4 5.1 1
1 1 2 0.8 1.1 1
1 1 3 1.1 4.2 1
1 2 1 ... ... 2
1 2 2 2
1 2 3 2
2 3 1 1
2 3 2 1
2 3 3 1
2 4 1 2
2 4 2 2
2 4 3 2
我想使用R函数RLE,但我不知道这是否会因为与天并发症的工作。否则,我会尝试这样的:
Data$site2 <- sequence(rle(Data$block)$lengths)
有没有人有任何建议增加列计数(序列)每个块内的网站数量?如果有帮助,每个站点的记录天数(263)相同,但每个站点的站点数量不同。
谢谢你,这完美地工作。我以前见过plyr,但从未使用它。 ddply是完美的,我实际上想要分解矩阵,在几天内使用reshape(= wide),应用rle(site),然后尝试重塑(= long)。我不知道这是否会奏效,但我认为有大约1000个更简单的方法可以做到这一点。我喜欢dpdply解决方案。再次感谢。 – djhocking 2011-12-18 16:25:03
不错的一个,只是尝试了类似的问题ddply选项,第一次完美工作 – Ell 2013-06-12 09:10:26