一般的な用語に関する情報を含む1と0の行列を作成したいと思います。私は列間に共通項の行列を作成しました(たとえば、1,4,2などの行があります)が、それをどのように分解するのか分かりません。一般的な概念を数え、その結果を行列に格納するにはどうすればよいですか?
ここはおもちゃで再現可能な例です。ステップ(1)〜(4)はOK、ステップ(5)は現時点ではできないことです。
(1)私が持っているこの(架空の)データセット
vec1 <- c("apple","pear","apple and pear")
vec2 <- c("apple and pear","banana","orange")
vec3 <- c("orange and pear","banana","apple")
my.data.frame <- as.data.frame(cbind(vec1,vec2,vec3))
vec1 vec2 vec3
1 apple apple and pear orange and pear
2 pear banana banana
3 apple and pear orange apple
(2)私は、変数やコンテンツを抽出
vectors.list <- as.vector(colnames(my.data.frame))
list.of.fruits <- unique(as.vector(unlist(my.data.frame)))
(2)私は、共通の用語をカウントする機能を書き留めます(これは、この記事の変形である:How to count common words and store the result in a matrix?)
common.fruits <- function(vList) {
v <- lapply(vList, tolower)
do.call(rbind, lapply(v, function(x) {
do.call(c, lapply(v, function(y) length(intersect(x, y))))
}))
}
(4)私が使用して取得し、lapply Sを行うにはOME、効率的な(私は推測)の計算
compare <- lapply(vectors.list,get)
common.terms.matrix <- common.fruits(compare)
rownames(common.terms.matrix) <- vectors.list
colnames(common.terms.matrix) <- vectors.list
common.terms.matrix
vec1 vec2 vec3
vec1 3 1 1
vec2 1 3 1
vec3 1 1 3
(5)どのように私はこのマトリックスまたはdata.frameにその最後の行列を脱凝集ん(「|」これを手で書かれたことを示すためにある)
| apple | pear | apple and pear | banana | orange | orange and pear
vec1 | 1 | 1 | 1 | 0 | 0 | 0
vec2 | 0 | 0 | 1 | 1 | 1 | 0
vec3 | 1 | 0 | 0 | 1 | 0 | 1
唔該おかげでたくさん – pachamaltese
私はOSXで、次の1時間に表示される言語のアイコンを変更することにより、中国語で書くのです:) – pachamaltese