【问题标题】:loop different rows from dataframe A and apply them to the same individual rows in dataframe B循环来自数据框 A 的不同行并将它们应用于数据框 B 中的相同单独行
【发布时间】:2018-04-29 13:13:33
【问题描述】:

由于我正在处理 Q 矩阵问题并需要计算汉明距离,我遇到了从 dataframe Adataframe B 中的同一行的不同行(作为向量)的问题。

具体来说,df2 是一个 6x3 数据帧,df1 是一个 3x3 数据帧。

    df1 <- data.frame(Q1= c(1,0,1), Q2= c(0,0,0), Q3= c(1,1,0))
    df2 <- data.frame(A =c(1,1,0,1,1,0), B =c(0,0,0,1,1,0), C =c(0,1,0,1,1,1))

我需要将 df2 中的所有 6 行作为向量依次应用到 df1 中的每一行,以便计算所有 6 个向量 - 1 个向量对的汉明距离(它应该只输出 3 个汉明距离值)。例如,df1 中的第一行 (1,0,1) 应与 df2 中的所有 6 行(包括 (1,0,0),(1,0,1),(0,0,0),(1,1,1),(1,1,1),(0,0,1))配对并产生 1 个汉明距离值。按照同样的逻辑,这个类似的过程应该给出 3 个汉明距离值。

我用double for() loop 尝试了几次,但没有成功。事实上,我什至不知道我们如何从dataframe 中打印出一行作为可以与其他向量进行其他计算的向量。有人可以帮忙吗?

【问题讨论】:

    标签: r loops matrix matrix-multiplication hamming-distance


    【解决方案1】:

    这应该可行:

    for(i in 1:nrow(df1)){
      print(sum(apply(df2,1,function(x) x!=df1[i,])))
      }
    
    [1] 6
    [1] 8
    [1] 8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-21
      • 2019-06-09
      • 2017-01-05
      • 2012-02-04
      相关资源
      最近更新 更多