R-查找行中的所有重复项并替换 [英] R - find all duplicates in row and replace

查看:8
本文介绍了R-查找行中的所有重复项并替换的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个很大的数据帧,正在尝试在一行中查找重复的元素,然后用空字符串替换所有重复的值:

  X1 X2 X3 X4 X5
x  1  2  3  3  4
y  1  1  2  3  4

应变为

  X1 X2 X3 X4 X5
x  1  2        4
y        2  3  4

我可以对单个向量执行此操作:

x <- c(1,2,3,3,4)
x[x %in% x[duplicated(x) == TRUE]] = ""
x

[1] "1" "2" ""  ""  "4"

但我无法让它对数据帧中的所有行起作用。 我尝试了以下方法,但无法正常工作:

apply(df,2,function(x) x[x %in% x[duplicated(x) == TRUE]] = "")

有什么想法吗?

推荐答案

您可以尝试:

as.data.frame(t(apply(df, 1, function(x) {x[x==x[duplicated(x)]] <- ''; x})))

获取

   X1 X2 X3 X4 X5
x  1  2        4
y        2  3  4

如果要保留每列的整数类型,请尝试以下操作:

as.data.frame(t(apply(df, 1, function(x) {x[x==x[duplicated(x)]] <- NA; x})))

获取

  X1 X2 X3 X4 X5
x  1  2 NA NA  4
y NA NA  2  3  4

这篇关于R-查找行中的所有重复项并替换的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆