gpt4 book ai didi

R计算相似行数据帧的出现

转载 作者:行者123 更新时间:2023-12-04 11:26:15 24 4
gpt4 key购买 nike

我有以下格式的数据,称为 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

但是,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

然后你可以使用 rle 来找出连续的序列:

> sequence(rle(data)$lengths)
[1] 1 2 3 1 2 3 4 5 1 2 3 4 1 2 1

或全部:

> 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

对于多列的情况,可能有很多方法可以应用此解决方案。最简单的方法可能是将您关心的列粘贴在一起形成一个向量。

关于R计算相似行数据帧的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572559/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com