Warum ist diese Matrix nicht numerisch? Dann zerstört as.numeric die Matrix und gibt einen Vektor @ zurüc

Ich habe einen Datenrahmen mit dem Nameninput. Die erste Spalte bezieht sich auf eine Artikel-ID ArtID) werden die nachfolgenden Spalten verwendet, um die Matrix zu erstellen.

Basierend aufArtID, Ich möchte, dass R eine 2x2-Matrix erzeugt (genauer:Es muss eine numerische 2x2 Matrix sein). Insbesondere möchte ich eine Matrix für die erste Zeile erstellen ArtID == 1), die zweite Reihe ArtID == 2) und so weiter..

Was mir bisher eingefallen ist:

for(i in 1:3) {stored.matrix = matrix(input[which(ArtID ==i),-1],nrow = 2)

Dies gibt mir eine 2x2 Matrix, aber es ist nicht numerisch (was es sein muss).

Wenn ich mich bewerbeas.numeric, die Matrix ist keine 2x2-Matrix mehr.

Wie bekomme ich eine numerische 2x2-Matrix?

Minimal reproduzierbares Beispiel:

ArtID = c(1,2,3)
AC_AC = c(1,1,1)
MKT_AC = c(0.5,0.6,0.2)
AC_MKT = c(0.5,0.6,0.2)
MKT_MKT = c(1,1,1)
input = data.frame(ArtID, AC_AC, MKT_AC, AC_MKT, MKT_MKT)

stored.matrix = matrix(input[which(ArtID ==i),-1],nrow = 2)
#     [,1] [,2]
#[1,] 1    0.5 
#[2,] 0.5  1  

is.numeric(stored.matrix)
# [1] FALSE

as.numeric(stored.matrix)
## [1] 1.0 0.5 0.5 1.0

Wie Sie nach der Bewerbung sehen könnenas.numeric() Die Matrix ist nicht mehr 2x2.

Kann jemand helfen

Antworten auf die Frage(4)

Ihre Antwort auf die Frage