1

Mを12xmの数値行列に変換するにはどうすればよいですか(たとえば、セルごとに1ビット)。

library(R.utils)
m<-5    
k<-12   
W<-sample(1:(2**m),k)
M<-matrix(intToBin(V),k,1)
4

2 に答える 2

2

intToBinバイナリ表現の文字列を返します。

この文字列を分割し、整数に変換してから、行を組み合わせることができます。

 M<-do.call(rbind, lapply(strsplit(intToBin(W),''), as.integer))
于 2013-01-10T23:30:45.717 に答える
1

intToBinは文字を返すのでstrsplit、行列に入れる前にそれを個々の数字(ビット)に分割するために使用します。

m <- 5
k <- 12
W <- sample(1:(2**m), k)
M <- matrix(as.numeric(unlist(strsplit(intToBin(W), ""))), nrow= k, byrow = TRUE)
> M
      [,1] [,2] [,3] [,4] [,5] [,6]
 [1,]    1    0    0    0    0    0
 [2,]    0    1    1    0    0    0
 [3,]    0    0    0    1    1    0
 [4,]    0    1    0    0    1    1
 [5,]    0    1    0    1    1    0
 [6,]    0    1    1    1    0    0
 [7,]    0    0    0    0    0    0
 [8,]    0    1    1    1    1    0
 [9,]    1    1    0    1    0    1
[10,]    1    0    0    1    1    1
[11,]    0    0    1    1    1    1
[12,]    0    0    1    1    0    1
于 2013-01-10T23:31:35.267 に答える