Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除重复数据的行(R)_R_Duplicates_Dataframe - Fatal编程技术网

如何删除重复数据的行(R)

如何删除重复数据的行(R),r,duplicates,dataframe,R,Duplicates,Dataframe,我已经对这个话题做了一个快速搜索,但是没有从以前的帖子中找到任何可以解决我问题的内容。这看起来很直截了当,但我仍然不知道如何有效地做到这一点 在下面的数据框中,我想用一个条目删除所有行(在本例中为B500和D40) 另一种方法是使用下面的表函数: table(A$x_1) A1 B10 B500 C100 D40 G100 3 4 1 3 1 2 现在,我的问题是如何选择下面只有数字1的条目?如果我能做到这一点,我应该能够获得这些名称,然后

我已经对这个话题做了一个快速搜索,但是没有从以前的帖子中找到任何可以解决我问题的内容。这看起来很直截了当,但我仍然不知道如何有效地做到这一点

在下面的数据框中,我想用一个条目删除所有行(在本例中为B500和D40)

另一种方法是使用下面的表函数:

 table(A$x_1)

   A1  B10 B500 C100  D40 G100 
   3    4    1    3    1    2 
现在,我的问题是如何选择下面只有数字1的条目?如果我能做到这一点,我应该能够获得这些名称,然后将它们从数据帧中删除

如果您有任何有用的想法/代码,我们将不胜感激。

您可以使用重复的两次:

有关其工作原理的更多信息,请参阅。

继续表路径。我将您的表指定给一个对象。然后提取所需表项的名称,并将其用于数据帧的子集

tt <- table(A$x_1)
A[!A$x_1 %in% names(tt[tt == 1]), ]

# or
A[A$x_1 %in% names(tt[tt > 1]), ]

#     x_1      z_1       z_2
# 1    A1 69.18667 0.8578626
# 2    A1 71.36819 2.8482506
# 3    A1 69.71246 1.9528315
# 4   B10 69.47145 1.7852872
# 5   B10 69.12699 0.7663739
# 6   B10 70.93589 1.1431804
# 7   B10 68.72273 0.6836297
# 9  C100 70.31252 2.4651336
# 10 C100 69.89168 1.9991948
# 11 C100 70.25079 1.0823843
# 13 G100 69.56992 2.0879085
# 14 G100 68.29589 2.5432109

@斯文·霍恩斯坦,谢谢你的回复。我不太明白复制是如何工作的,但我会读一读。@John我在答案中添加了一个链接,提供了更详细的信息。@Henrik,太棒了。非常感谢你。
 table(A$x_1)

   A1  B10 B500 C100  D40 G100 
   3    4    1    3    1    2 
A[duplicated(A$x_1) | duplicated(A$x_1, fromLast = TRUE), ]

    x_1      z_1       z_2
1    A1 70.32176 2.5074802
2    A1 70.28238 1.8819723
3    A1 67.93057 2.1899037
4   B10 69.75905 1.8493991
5   B10 70.25713 2.6948229
6   B10 69.33121 0.2793853
7   B10 70.82879 2.2831781
9  C100 70.14587 1.0332913
10 C100 69.51571 0.2590098
11 C100 70.48928 1.8471024
13 G100 72.11057 0.6914086
14 G100 69.93814 2.4245214
tt <- table(A$x_1)
A[!A$x_1 %in% names(tt[tt == 1]), ]

# or
A[A$x_1 %in% names(tt[tt > 1]), ]

#     x_1      z_1       z_2
# 1    A1 69.18667 0.8578626
# 2    A1 71.36819 2.8482506
# 3    A1 69.71246 1.9528315
# 4   B10 69.47145 1.7852872
# 5   B10 69.12699 0.7663739
# 6   B10 70.93589 1.1431804
# 7   B10 68.72273 0.6836297
# 9  C100 70.31252 2.4651336
# 10 C100 69.89168 1.9991948
# 11 C100 70.25079 1.0823843
# 13 G100 69.56992 2.0879085
# 14 G100 68.29589 2.5432109