gpt4 book ai didi

R 数据表 : Interate over/compare rows

转载 作者:行者123 更新时间:2023-12-02 06:37:44 28 4
gpt4 key购买 nike

我正在使用 R 中的大型数据表,并尝试遍历整个表并根据单独列中行的值设置给定列中的行值。

我试图在一个有 20 万行的表上运行这个循环,但它的移动速度非常慢。我怀疑我没有充分利用 data.table 的所有效率,但不知道我可以在哪里改进。

我的代码如下。我的表是“DATA”,我的键是列“x”和“y”,我试图遍历所有行并将第 6 列中的行的值设置为 1仅当第 2 列中行的值不等于第 2 列中前一行的值。

setkey(DATA,x,y)
for (i in 2:nrow(DATA)) {

if (DATA[i,2]!=DATA[i-1,2]){
DATA[i, 6] = 1
}

}

同样,这可行,但对于大表来说非常慢。任何帮助将不胜感激 - 谢谢!

最佳答案

在没有看到数据的情况下,这里有一个刺(不使用 data.table):

DATA[c(0, diff(DATA[,2]))!=0, 6] <- 1

如果第一行被认为“不相等”:

DATA[c(1, diff(DATA[,2]))!=0, 6] <- 1

关于R 数据表 : Interate over/compare rows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14539134/

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