2

ffdf で最も頻繁に使用される要素を見つけ、その後、ある行を削除するための提案が必要です。非常に大きなデータを扱っており、ベース RI ではメモリが不足しているため、ff パッケージを試すことにしました。

以下に少し例を示します。

 # create a base R Matrix

 > z<-matrix(c("a", "b", "a", "c", "b", "b", "c", "c", "b", "a"),nrow=5,ncol=2,byrow = TRUE)
 > z


     [,1] [,2]
 [1,] "a"  "b" 
 [2,] "a"  "c" 
 [3,] "b"  "b" 
 [4,] "c"  "c" 
 [5,] "b"  "a" 


 # convert z to ffdf

 > u=as.data.frame(z, stringsAsFactors=TRUE)
 > u=as.ffdf(u)
 > u

  ffdf data
   V1 V2
1  a  b
2  a  c
3  b  b
4  c  c
5  b  a

を探しています:

  • ffdf で最も頻繁に使用される要素をエクスポートします (この場合は「b」です)。
  • 「b」が配置されているすべての行をffdfから削除します

したがって、新しい ffdf は次のようになります。

   V1 V2
1  a  c
2  c  c

ベースRIでは、「テーブル」機能で方法を見つけました

  temp <- table(as.vector(z))  
  t1<-names(temp)[temp == max(temp)] 
  z1<- z[rowSums(z== t1[1]) == 0, ]    

しかし、巨大なデータを扱うには、ff パッケージのようなものが必要です。

4

1 に答える 1