用空白[重复]替换列中的重复值。

问题描述 投票:0回答:1

对于我的工作,我很难找到一个解决方案,据此我可以删除重复的值。而不需要删除重复的行,甚至替换整个行。. 我想做的是把一个数据框,如::

   A  B  C  D  E
[1]1  2  5  6  7
[2]1  3  6  5  7 
[3]1  4  7  4  7
[4]2  1  3  3  6
[5]2  2  4  5  6
[6]3  1  2  2  5
[7]3  2  1  3  5

的数据框架,然后重新修改,这样就可以删除E列中的重复数据,并用一个空值代替,就像这样。

       A  B  C  D  E
    [1]1  2  5  6  7
    [2]1  3  6  5   
    [3]1  4  7  4  
    [4]2  1  3  3  6
    [5]2  2  4  5  
    [6]3  1  2  2  5
    [7]3  2  1  3  

这样一来,我就可以保持数据框的其他部分不变。这样做的目的主要是为了最终打印时的格式化(如果有人想知道到底为什么有人要这样做)。

诚然,我是个初学者。这个任务我以前是通过Excel VBA来运行的,但是这个过程对计算机的要求非常高,因为我在一个非常大的数据集上运行这个任务,它使一切都太慢了。任何帮助都是非常感激的。

编辑: 有人提出过类似的问题--但这些问题适用于仅由一列组成的数据框架(即它们在替换时不必保留行的其余部分),关于这些问题的解决方案将确定E列中有重复值的行,然后用空白替换所有列中的值。

r dataframe replace duplicates
1个回答
2
投票

你可以像这样使用重复。

df$E[duplicated(df$E)] <- ""

> df
  A B C D E
1 1 2 5 6 7
2 1 3 6 5  
3 1 4 7 4  
4 2 1 3 3 6
5 2 2 4 5  
6 3 1 2 2 5
7 3 2 1 3 

数据

df <- read.table(text="   A  B  C  D  E
1  2  5  6  7
1  3  6  5  7 
1  4  7  4  7
2  1  3  3  6
2  2  4  5  6
3  1  2  2  5
3  2  1  3  5",header=TRUE,stringsAsFactors=FALSE)
© www.soinside.com 2019 - 2024. All rights reserved.