Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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,我试图弄清楚如何从数据帧中删除所有唯一的行,但如果它有重复的行,我希望它保持不变。例如-我希望此表中所有列的col1都相同: df<-data.frame(col1=c(rep("a",3),"b","c",rep("d",3)),col2=c("A","B","C",rep("A",3),"B","C"),col3=c(3,3,1,4,4,3,2,1)) df col1 col2 col3 1 a A 3 2 a B 3 3 a C

我试图弄清楚如何从数据帧中删除所有唯一的行,但如果它有重复的行,我希望它保持不变。例如-我希望此表中所有列的col1都相同:

df<-data.frame(col1=c(rep("a",3),"b","c",rep("d",3)),col2=c("A","B","C",rep("A",3),"B","C"),col3=c(3,3,1,4,4,3,2,1))
df
  col1 col2 col3
1    a    A    3
2    a    B    3
3    a    C    1
4    b    A    4
5    c    A    4
6    d    A    3
7    d    B    2
8    d    C    1

subset(df,duplicated(col1))
  col1 col2 col3
2    a    B    3
3    a    C    1
7    d    B    2
8    d    C    1
df尝试:

>tdf 1],]
>df
col1 col2 col3
1 a 3
2 a B 3
3 a C 1
6 d A 3
7 d B 2
8 d C 1
另一个选项:

subset(df,duplicated(col1) | duplicated(col1, fromLast=TRUE))

您可以通过使用
ave
创建索引来实现这一点:

df[as.logical(ave(1:nrow(df), df$col1, FUN=function(x) length(x) > 1)), ]
产生

  col1 col2 col3
1    a    A    3
2    a    B    3
3    a    C    1
6    d    A    3
7    d    B    2
8    d    C    1
  col1 col2 col3
1    a    A    3
2    a    B    3
3    a    C    1
6    d    A    3
7    d    B    2
8    d    C    1