ein Vektor zu einem oberen Dreieck Matrix für Zeile in R

7

Ich habe einen Vektor sagen

%Vor%

Ich möchte sie in die Elemente in eine obere Dreiecksmatrix einordnen (ohne Diagonalelemente zu berücksichtigen, sie sind alle null) nach Zeile . Mein Ziel ist es, die folgende Matrix zu erhalten:

%Vor%

Aber ich tue es so, indem ich die diagonalen Elemente durch diesen Vektor ersetze, aber die Werte spaltenweise zuweise. Zum Beispiel

%Vor%

es wird mir die folgende Matrix geben

%Vor%

Der Grund dafür ist, dass wenn R einer Matrix Werte zuweist, diese standardmäßig per Spalte zugewiesen werden. Ich frage mich, ob es eine einfache Möglichkeit gibt, mein Problem zu lösen, ohne eine for-Schleife zu schreiben.

Ich habe einen ähnlichen Beitrag gefunden, der sich auf mein Problem bezogen hat, aber er erklärt nicht, dass einem oberen Dreieck Matrix für Zeile Werte zugewiesen werden:

Erstellen einer dreieckigen Matrix

Vielen Dank im Voraus!

    
Crystal 11.06.2015, 17:15
quelle

2 Antworten

9

Hier ist eine Option

%Vor%

Alternativ können Sie a nach Bedarf neu anordnen und dem oberen rechten Dreieck zuweisen:

%Vor%     
Josh O'Brien 11.06.2015, 17:19
quelle
0
___ tag123r ___ R ist eine freie, quelloffene Programmiersprache und Softwareumgebung für statistische Berechnungen, Bioinformatik, Visualisierung und allgemeine Datenverarbeitung. Stellen Sie minimale, reproduzierbare, repräsentative Beispiele für Ihre Fragen bereit. Verwenden Sie dput () für Daten und geben Sie alle Nicht-Basis-Pakete mit Bibliotheksaufrufen an. Bilder für Daten oder Code nicht einbetten, eingerückte Codeblöcke verwenden. Verwenden Sie für statistische Fragen http://stats.stackexchange.com. ___ answer30787372 ___

Hier ist eine Option

%Vor%

Alternativ können Sie %code% nach Bedarf neu anordnen und dem oberen rechten Dreieck zuweisen:

%Vor%     
___ antwort43903143 ___

Beachten Sie, dass Sie zum Füllen einer ASYMMETRISCHEN Matrix zuerst das obere Dreieck mit dem oben gezeigten Code füllen und dann den unteren mit einem VERSCHIEDENEN Vektor (keine Transponierung erforderlich).   c & lt; - c (7,8,9,10,11,12)   b [untere.tri (b, diag = FALSE)] & lt; - c

    
___ qstnhdr ___ ein Vektor zu einem oberen Dreieck Matrix für Zeile in R ___ tag123vector ___ Ein Vektor ist ein eindimensionales Array: Er enthält Komponenten, auf die mit einem ganzzahligen Index zugegriffen werden kann. In einigen Sprachen kann die Größe eines Vektors nach Bedarf vergrößert oder verkleinert werden, um Elemente hinzuzufügen und zu entfernen, nachdem der Vektor erstellt wurde. Verwenden Sie "Vektorgrafiken" für die grafische Darstellung. ___ qstntxt ___

Ich habe einen Vektor sagen

%Vor%

Ich möchte sie in die Elemente in eine obere Dreiecksmatrix einordnen (ohne Diagonalelemente zu berücksichtigen, sie sind alle null) nach Zeile . Mein Ziel ist es, die folgende Matrix zu erhalten:

%Vor%

Aber ich tue es so, indem ich die diagonalen Elemente durch diesen Vektor ersetze, aber die Werte spaltenweise zuweise. Zum Beispiel

%Vor%

es wird mir die folgende Matrix geben

%Vor%

Der Grund dafür ist, dass wenn R einer Matrix Werte zuweist, diese standardmäßig per Spalte zugewiesen werden. Ich frage mich, ob es eine einfache Möglichkeit gibt, mein Problem zu lösen, ohne eine for-Schleife zu schreiben.

Ich habe einen ähnlichen Beitrag gefunden, der sich auf mein Problem bezogen hat, aber er erklärt nicht, dass einem oberen Dreieck Matrix für Zeile Werte zugewiesen werden:

Erstellen einer dreieckigen Matrix

Vielen Dank im Voraus!

    
___ tag123matrix ___ In der Mathematik ist eine Matrix (mehrere Matrizen) eine rechteckige Anordnung von Zahlen, Symbolen oder Ausdrücken, die in Zeilen und Spalten angeordnet sind. Die einzelnen Elemente in einer Matrix heißen ihre Elemente oder Einträge. ___
Dave McD 10.05.2017 21:38
quelle

Tags und Links