groupごとに不一致のケースをどのように計算できるか疑問に思っていました。
これが私のデータであると想像してみましょう:
sek = rbind(c(1, 'a', 'a', 'a'),
c(1, 'a', 'a', 'a'),
c(2, 'b', 'b', 'b'),
c(2, 'c', 'b', 'b'))
colnames(sek) <- c('Group', paste('t', 1:3, sep = ''))
データはこんな感じ
Group t1 t2 t3
[1,] "1" "a" "a" "a"
[2,] "1" "a" "a" "a"
[3,] "2" "b" "b" "b"
[4,] "2" "c" "b" "b"
のようなものを得るために
Group 1 : 0
Group 2 : 1
stringdist
ライブラリを使用してこれを計算することは素晴らしいことです。
何かのようなもの
seqdistgroupStr = function(x) stringdistmatrix(x, method = 'hamming')
sek %>%
as.data.frame() %>%
group_by(Group) %>%
seqdistgroupStr()
しかし、それは機能していません。
何か案は ?
クイック更新: 重みの問題をどのように解決しますか? たとえば、2 つの文字の不一致を設定するときに、引数 (値 (1,2,3, ...)) を渡すにはどうすればよいでしょうか。同様に、b と cの間のミスマッチは2のコストがかかり、a とcの間のミスマッチは1などのコストがかかります。