1

私はのベクトルを持っていxます。差が以下のペア要素の行列を作成したいと思います1e-2。Rでこれを行うにはどうすればよいですか?

    x = c(0.0001560653, 0.0001685597, 0.0002793819, 0.0006336307, 0.0455676525,
    0.3184740837, 0.3195122279, 0.3195122606)

    i = which(diff(x) <= 1e-2)

私の希望するマトリックスは次のとおりです。

    > M
         [,1]         [,2]
  [1,] 0.0001560653 0.0001685597
  [2,] 0.0001685597 0.0002793819
  [3,] 0.0002793819 0.0006336307
  [4,] 0.3184740837 0.3195122279
  [5,] 0.3195122279 0.3195122606
4

2 に答える 2

2

そのように:

idx <- which(diff(x) <= 0.01)
cbind(x[idx], x[idx+1])
#              [,1]         [,2]
# [1,] 0.0001560653 0.0001685597
# [2,] 0.0001685597 0.0002793819
# [3,] 0.0002793819 0.0006336307
# [4,] 0.3184740837 0.3195122279
# [5,] 0.3195122279 0.3195122606
于 2012-11-13T00:16:04.840 に答える
1

を使用できますexpand.grid

x <- c(0.0001560653, 0.0001685597, 0.0002793819, 0.0006336307, 0.0455676525,
0.3184740837, 0.3195122279, 0.3195122606)
y <- expand.grid(x,x)
as.matrix(y[abs(y[[2]] - y[[1]]) <= 0.01,])

           Var1         Var2
1  0.0001560653 0.0001560653
2  0.0001685597 0.0001560653
3  0.0002793819 0.0001560653
4  0.0006336307 0.0001560653
9  0.0001560653 0.0001685597
10 0.0001685597 0.0001685597
11 0.0002793819 0.0001685597
...

更新:編集された質問に目的の出力を反映するように編集されました。

于 2012-11-12T23:45:42.170 に答える