gpt4 book ai didi

R - 按组计算不匹配

转载 作者:行者123 更新时间:2023-12-02 05:29:59 25 4
gpt4 key购买 nike

我想知道如何按组计算不匹配个案。

让我们想象这是我的数据:

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()

但它不起作用。

有什么想法吗?

快速更新:你会如何解决权重问题?例如,在设置两个字符之间的 mistmatch 时,我如何传递一个参数 - 一个值 (1,2,3, ...)。就像 b 和 c 之间的不匹配 成本 2a 和 c 之间的不匹配> 花费 1 等等。

最佳答案

这是另一个 dplyr 解决方案,不需要将数据转换为长/宽形式:

library(dplyr)
sek = rbind(c(1, 'a', 'a', 'a'),
c(1, 'a', 'a', 'a'),
c(2, 'b', 'b', 'b'),
c(2, 'c', 'b', 'b')) %>%
data.frame

colnames(sek) <- c('Group', paste('t', 1:3, sep = ''))

sek %>%
group_by(Group) %>%
distinct(t1, t2, t3) %>%
summarise(number_of_mismatches = n() - 1)

关于R - 按组计算不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31281125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com