Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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_Dplyr_Subset - Fatal编程技术网

如何在R中的另一列中仅子集具有多个不同值的行?

如何在R中的另一列中仅子集具有多个不同值的行?,r,dplyr,subset,R,Dplyr,Subset,我有一个类似于下面的数据集: zz <- "Session Rater 1 A X 2 A X 3 A X 4 B Y 5 B Y 6 B Z 7 B Z 8

我有一个类似于下面的数据集:

zz <-  "Session    Rater     
1          A         X          
2          A         X     
3          A         X   
4          B         Y   
5          B         Y     
6          B         Z   
7          B         Z         
8          C         X   
9          C         Y    
10         C         Z"

Data <- read.table(text=zz, header = TRUE)

zz我们可以使用
filter
n\u distinct

library(dplyr)
Data %>%
    group_by(Session) %>% 
    filter(n_distinct(Rater)>1)
#  Session  Rater
#   <fctr> <fctr>
#1       B      Y
#2       B      Y
#3       B      Z
#4       B      Z
#5       C      X
#6       C      Y
#7       C      Z

或使用
base R

i1 <- rowSums(!!table(Data))
subset(Data, Session %in% names(i1)[i1 >1])
i1])

我们可以使用
过滤器
n\u不同

library(dplyr)
Data %>%
    group_by(Session) %>% 
    filter(n_distinct(Rater)>1)
#  Session  Rater
#   <fctr> <fctr>
#1       B      Y
#2       B      Y
#3       B      Z
#4       B      Z
#5       C      X
#6       C      Y
#7       C      Z

或使用
base R

i1 <- rowSums(!!table(Data))
subset(Data, Session %in% names(i1)[i1 >1])
i1])
。。。或者使用ave()和subscripting(假设Rater是一个因子,这是读取字符数据时的默认值)

。。。或者使用ave()和subscripting(假设Rater是一个因子,这是读取字符数据时的默认值)

从本质上讲,这是一个相反的重复,因为你所要改变的是
==
,但有些事情也从这些答案开始了。从本质上讲,这是一个相反的重复,因为你所要改变的是
==
,但有些事情也偏离了这些答案。
Data[with(Data,ave(unclass(Rater),Session,
FUN = function(x)length(unique(x)))) > 1,]