Mat*_*att 3 r count duplicates dataframe
我有以下格式的数据称为DF(这只是一个简化的简化示例):
eval.num, eval.count, fitness, fitness.mean, green.h.0, green.v.0, offset.0 random
1 1 1500 1500 100 120 40 232342
2 2 1000 1250 100 120 40 11843
3 3 1250 1250 100 120 40 981340234
4 4 1000 1187.5 100 120 40 4363453
5 1 2000 2000 200 100 40 345902
6 1 3000 3000 150 90 10 943
7 1 2000 2000 90 90 100 9304358
8 2 1800 1900 90 90 100 284333
Run Code Online (Sandbox Code Playgroud)
但是,eval.count列不正确,我需要修复它.它应该仅通过查看前面的行来报告(green.h.0,green.v.0和offset.0)具有相同值的行数.
上面的示例使用了预期值,但假设它们不正确.
如何添加一个新列(比如"count"),它将计算具有相同指定变量值的所有先前行?
我已经得到了一个类似的问题的帮助,即只选择具有相同值的指定列的所有行,所以我想我可以围绕它写一个循环,但对我来说似乎效率低下.
好的,让我们首先在简单的情况下进行,只需要一列.
> data <- rep(sample(1000, 5),
sample(5, 5))
> head(data)
[1] 435 435 435 278 278 278
Run Code Online (Sandbox Code Playgroud)
然后你可以使用rle来计算出连续的序列:
> sequence(rle(data)$lengths)
[1] 1 2 3 1 2 3 4 5 1 2 3 4 1 2 1
Run Code Online (Sandbox Code Playgroud)
或者完全:
> head(cbind(data, sequence(rle(data)$lengths)))
[1,] 435 1
[2,] 435 2
[3,] 435 3
[4,] 278 1
[5,] 278 2
[6,] 278 3
Run Code Online (Sandbox Code Playgroud)
对于具有多列的情况,可能有很多方法可以应用此解决方案.最简单的可能是paste您关注的列,以形成单个向量.