Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.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_Subset_Unique - Fatal编程技术网

将不唯一但具有不同标签的行保留在R中的另一列中

将不唯一但具有不同标签的行保留在R中的另一列中,r,subset,unique,R,Subset,Unique,我有一个叫做“数据帧”的数据帧 它有一列“暴露”,例如ABC、DEF、GHI和一列红色和黄色的“标签”。它们可以位于标有“红色”的一行上,也可以位于标有“红色”的多行上,或者位于标有“黄色”和“红色”的多行上 Exposure Label ABC yellow DEF yellow GHI red GHI red GHI red JKL yellow DEF red ABC yel

我有一个叫做“数据帧”的数据帧

它有一列“暴露”,例如ABC、DEF、GHI和一列红色和黄色的“标签”。它们可以位于标有“红色”的一行上,也可以位于标有“红色”的多行上,或者位于标有“黄色”和“红色”的多行上

Exposure   Label
ABC        yellow
DEF        yellow
GHI        red
GHI        red
GHI        red
JKL        yellow
DEF        red
ABC        yellow
ABC        red
我如何提取那些多次出现但颜色不同的图像?所以这里我想保留ABC,因为它是黄色和红色的,但失去GHI,因为它们只是红色的

到目前为止,我只能保留那些非唯一的

both <- dataframe %>% group_by(Exposure) %>% filter(n()>1)
两个%group\u by(暴露)%%>%过滤器(n()>1)
但是,您不知道如何指定保留那些只有不同标签的标签,而不是相同的标签


谢谢

您可以将两列合并为一个新列,然后使用unique创建子集

df$x <- paste(df$Exposure,df$Label)

df <- df[!duplicated(df$x), ]


df$x您可以将两列合并成一个新列,然后使用unique创建子集

df$x <- paste(df$Exposure,df$Label)

df <- df[!duplicated(df$x), ]

df$x
库(data.table)
#样本数据
DT 1).标准偏差,由=暴露]
#曝光标签
#1:ABC黄色
#2:ABC黄色
#3:ABC红色
#4:DEF黄色
#5:DEF红色
库(data.table)
#样本数据
DT 1).标准偏差,由=暴露]
#曝光标签
#1:ABC黄色
#2:ABC黄色
#3:ABC红色
#4:DEF黄色
#5:DEF红色
基本R选项

subset(
  dataframe,
  ave(Label, Exposure, FUN = function(x) length(unique(x))) > 1
)
给予

基本R选项

subset(
  dataframe,
  ave(Label, Exposure, FUN = function(x) length(unique(x))) > 1
)
给予

n()
将给出组中的行数,
n_distinct(标签)
将给出唯一值的计数

library(dplyr)
dataframe %>% group_by(Exposure) %>% filter(n_distinct(Label)>1) %>% ungroup

#  Exposure Label 
#  <chr>    <chr> 
#1 ABC      yellow
#2 DEF      yellow
#3 DEF      red   
#4 ABC      yellow
#5 ABC      red   
库(dplyr)
数据帧%>%group\U by(曝光)%%>%filter(n\U distinct(标签)>1)%%>%ungroup
#曝光标签
#       
#1 ABC黄色
#2 DEF黄色
#3 DEF红色
#4 ABC黄色
#5 ABC红色
n()
将给出组中的行数,
n\u distinct(标签)
将给出唯一值的计数

library(dplyr)
dataframe %>% group_by(Exposure) %>% filter(n_distinct(Label)>1) %>% ungroup

#  Exposure Label 
#  <chr>    <chr> 
#1 ABC      yellow
#2 DEF      yellow
#3 DEF      red   
#4 ABC      yellow
#5 ABC      red   
库(dplyr)
数据帧%>%group\U by(曝光)%%>%filter(n\U distinct(标签)>1)%%>%ungroup
#曝光标签
#       
#1 ABC黄色
#2 DEF黄色
#3 DEF红色
#4 ABC黄色
#5 ABC红色

或者我们可以做
setDT(dataframe)[,.SD[uniqueN(Label)>1],Exposure]
非常感谢你们两位!他们成功了!或者我们可以做
setDT(dataframe)[,.SD[uniqueN(Label)>1],曝光]
非常感谢你们两位!他们成功了!