大佬教程收集整理的这篇文章主要介绍了识别重复行并仅将特定列设置为零,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我尝试识别数据框中的重复行,并据此仅将重复行的特定列 x 设置为 0。如果列 ID 和 key 相同,我尝试将列 x & y 设置为零,如果重复行也有相同的数字(大于 0)。
df <- data.frame(x=c(1,3,2,0),y=c(1,1,4,ID=c('ID1','ID1','ID2','ID2'),key=c('key1','key1','key2','key3'))
df[order(df$ID),]
duplicates <- df[duplicated(df[c('ID','key')]) & (df$x != 0 | df$y != 0),]
这样,我能够识别重复的行,但现在我只想将特定列(x 或 y)设置为零,如果也有相同的值。我用 ifelse 语句尝试过,但我无法得到正确的结果。
所需的输出看起来像这样(只有 x 列中的一个值和 y 列中的树值设置为 0):
output <- data.frame(x=c(1,'key3'))
output[order(output$ID),]
非常感谢您的帮助!
library(dplyr)
df %>%
group_by(id,key,y) %>%
mutate(y = ifelse(sequence(n()) > 1,y)) %>%
ungroup() %>%
group_by(id,X) %>%
mutate(x = ifelse(sequence(n()) > 1,X))
编辑:这是您要找的吗?让我知道你的想法,因为我不确定你到底在问什么
以上是大佬教程为你收集整理的识别重复行并仅将特定列设置为零全部内容,希望文章能够帮你解决识别重复行并仅将特定列设置为零所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。