R-查找行中的所有重复项并替换 [英] R - find all duplicates in row and replace
本文介绍了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屋!
查看全文