计算数据帧中的精确行匹配

时间:2017-02-27 14:40:38

标签: r

我们假设我有一个数据框df和一个示例行sample <- df[1,]

如何计算sampledf的出现次数?

从我到目前为止发现,它应该是sum(df==sample),但我收到错误

‘==’ only defined for equally-sized data frames

例如:

df <- data.frame(matrix(rnorm(20), nrow=10))
df <- rbind(df, df[1,])
sample <- df[1,]

unlist(sample)[col(df)]==df

      X1    X2
1   TRUE  TRUE
2  FALSE FALSE
3  FALSE FALSE
4  FALSE FALSE
5  FALSE FALSE
6  FALSE FALSE
7  FALSE FALSE
8  FALSE FALSE
9  FALSE FALSE
10 FALSE FALSE
11  TRUE  TRUE

1 个答案:

答案 0 :(得分:2)

使用merge然后计算行:

# reproducible example data
set.seed(1)
df1 <- data.frame(matrix(rnorm(20), nrow = 10))
# add duplicate row
df1 <- rbind(df1, df1[1,])
df1_sample <- df1[1,]

# merge and get number of rows
nrow(merge(df1_sample, df1))
# [1] 2