1

次のような状況があります。

DF1

  COL1   COL2   COL3  ...   

   a      b      c       
   b      d      b
   f      e      a
   g      m      f      

DF2

COL
a
b
c
d
e
f
g
h
i
l
m
no
_

DF1 の各列を DF2 の 1 つの列と一致させ、DF1 の各列に DF2 が何回出現するかをスコア付けしたいと思います。これはどのように行うことができますか?

前もって感謝します、

E.

4

2 に答える 2

2

ここにいくつかの推測があります:

 sapply( lapply(DF1, "%in%", DF2[[1]]), sum )

 lapply(DF1, function(col) length(which(col %in% DF2) ) )

DF2 が data.frame である場合、その名前が付けられている可能性が高く、次のようにする必要があります。

lapply(DF1, function(col) length(which(col %in% DF2[[1]]) ) )

(編集注:%in%および '[[1]]' の周りに引用符を追加して、DF2 の最初で唯一の列をリストではなくベクトルとして返します。)

于 2012-10-03T20:20:38.520 に答える
2

次のようなものはどうですか:

sapply(DF1, function(x) sum(x %in% DF2))

または、質問を更新して DF2 は次のように述べているためdata.frame:

sapply(DF1, function(x) sum(x %in% DF2$COL))
于 2012-10-03T20:22:38.467 に答える