次のような状況があります。
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.
次のような状況があります。
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.
ここにいくつかの推測があります:
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 の最初で唯一の列をリストではなくベクトルとして返します。)
次のようなものはどうですか:
sapply(DF1, function(x) sum(x %in% DF2))
または、質問を更新して DF2 は次のように述べているためdata.frame
:
sapply(DF1, function(x) sum(x %in% DF2$COL))