gpt4 book ai didi

根据前几行的值替换数据框的值

转载 作者:行者123 更新时间:2023-12-04 17:44:08 25 4
gpt4 key购买 nike

假设我有以下数据框:

key         values
A 118
B 118
B 118
C 100
A 90
A 90
A 90

我想用 0 替换前一行具有相同键的值。
然后,数据将如下所示:
key         values
A 118
B 118
B 0
C 100
A 90
A 0
A 0

对于名为“m”的数据框,我使用了以下条件:
for (i in 1:(length(m[,1])-1)) {

if (m[,1][i+1]==m[,1][i]) {m[,2][i+1]<- 0}

}

它有效,但我的数据有 2104776 行和 23 列。所以,花了3个小时。

我想知道是否有更有效的方法来完成这项任务。任何想法,将不胜感激。谢谢你。

最佳答案

我们可以使用 lag来自 dplyr并检查 key 中的值是否与其之前的值相同,并将 0 分配给匹配的值。

library(dplyr)
df$values[df$key == lag(df$key)] <- 0

df
# key value
#1 A 118
#2 B 118
#3 B 0
#4 C 100
#5 A 90
#6 A 0
#7 A 0

关于根据前几行的值替换数据框的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42096898/

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