对于我的工作,我很难找到一个解决方案,据此我可以删除重复的值。而不需要删除重复的行,甚至替换整个行。. 我想做的是把一个数据框,如::
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列中有重复值的行,然后用空白替换所有列中的值。
你可以像这样使用重复。
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)