2017-02-27 46 views
1

データフレーム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 
+1

'=='の同サイズのデータ​​セットに対してのみ機能します。小さな再現可能な例を示す必要があるかもしれません。おそらく、 'unlist(sample)[col(df)] == df'が正しいと仮定して、 – akrun

+0

ありがとう!それは私が必要とするものです。 (例を追加しました) – user5226582

+2

'colSums(unlist(sample)[col(df)] == df)'が必要です – akrun

答えて

2

使用して行を数え、その後マージ:

# 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 
+0

それは、多くのありがとう! – user5226582

+0

@ user5226582 dfとsampleはR関数なので、変数名として使用しないでください。私は異なる名前で投稿を更新します。 – zx8754

+0

私は自分のデータを "匿名化"しようとしましたが、実際の名前は異なります。私はまだそれを知らなかったので、ありがとう。 – user5226582

関連する問題