我们假设我有一个数据框df
和一个示例行sample <- df[1,]
。
如何计算sample
中df
的出现次数?
从我到目前为止发现,它应该是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
答案 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