3

反復アルゴリズムでは、各ステップで、さらに計算するために考慮すべき行を 1 つ、複数、またはまったく特定しません。対象の行を格納するには、X.id と X.val の 2 つの変数をバインドする必要があります。私は現在使用しています:

cbind(X.id,X.val)

X.id と X.val が両方とも行列の場合、問題なく動作します。

X.id  <- matrix(1,nrow=2,3)
X.val <- matrix(1,nrow=2,1)     
 cbind(X.id,X.val)
     [,1] [,2] [,3] [,4]
[1,]    1    1    1    1
[2,]    1    1    1    1

ただし、行が1つの場合はそうではありません:

X.id  <-  c(1,1,1)
X.val <- matrix(1,nrow=1,1)
cbind(X.id,X.val)

次のエラーが発生します。

 In cbind(c(1, 1, 1), matrix(1, nrow = 1, 1)) : number of rows of result is not a multiple of vector length (arg 1)

提案されたソリューションは、行列の次元を維持しながら、行数が 0、1、および n の場合に機能するはずです!

4

2 に答える 2

5

私はあなたが探していると信じていますappend(X.id,X.val)

于 2013-04-24T15:33:15.543 に答える
0

idとの関係に関して、質問は少し不明確valueです。list@cyro111がコメントで説明しているように、あなたが求める解決策は a を使用することである可能性があります。

を使用すると、列cbindに強制されるため、求める結果が得られません。X.id(もちろん、それがあなたの求めているものでない限り。繰り返しますが、あなたの質問からは少し不明確です)。

c() 次のように単純に使用することもできます

 > c(X.id, X.val)
 [1] 1 1 1 1
于 2013-04-24T17:11:20.677 に答える