如何在R中计算互信息MapReduce??

如何在R中计算互信息MapReduce??,mapreduce,rhadoop,Mapreduce,Rhadoop,我想计算特征中所有x,y的互信息:I(x,y) 所以我需要计算数据中的P(x)P(y)和P(x,y),例如: xy --是2否2是2否1是1 p(是)=3/5 p(2)=3/5 p(是,2)=2/5 在Map Reduce中计数很容易,我为p(x)和p(y)做了这项工作 但对于p(x,Y),我想计算每个物体的共现 我编写了一个映射函数: mapper <- function(key, line) { fvec <- unlist(strsplit(line, spl

我想计算特征中所有x,y的互信息:I(x,y) 所以我需要计算数据中的P(x)P(y)和P(x,y),例如:

xy --是2否2是2否1是1

p(是)=3/5 p(2)=3/5 p(是,2)=2/5

在Map Reduce中计数很容易,我为p(x)和p(y)做了这项工作 但对于p(x,Y),我想计算每个物体的共现

我编写了一个映射函数:

  mapper <- function(key, line) {

      fvec <- unlist(strsplit(line, split = " "))

      for(i in 1:55){

        for(j in (i+1):56){
               fvec<-c(fvec,paste0(fvec[i],",",fvec[j]))}}

      keyval(fvec, 1)
    }
在for循环中,我想连接这些特性,以便

fvec[1]="yes" "2" "yes2"
为了在reduce func中同时计算yes-2的出现次数:

 reduce = function(k,v)
        {return(keyval(k,length(v)))
但由于Hadoop中的“循环问题”,它不能正常工作。 请帮助我使用R解决方案来处理它:)

 reduce = function(k,v)
        {return(keyval(k,length(v)))