Matroids Matheplanet Forum Index
Moderiert von matroid mire2
Mathematische Software & Apps » Statistikpakete » In R: Vektor in Matrixspalte wiederfinden
Autor
Universität/Hochschule In R: Vektor in Matrixspalte wiederfinden
Jessi2013
Junior Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 18.09.2013
Mitteilungen: 9
  Themenstart: 2016-03-05

Hi, ich bin mir nicht recht sicher ob jemand sich hier in dem Statistikprogramm R auskennt. Aber ein Versuch ist es Wert. Also ich hab eine Matrix mit mehreren Spalten und einen Vektor, wobei der Vektor genau so lang ist wie die Matrix zeilen hat. Meine Frage gibt es einen Befehl, mit dem ich die Spaltennummer der Matrix finden kann wo der Vektor mit der Spalte identisch ist. Liebe Grüße Jessi. p.s. ich bin mir nicht sicher ob die zuordnung des Forums richtig ist.


   Profil
Ex_Senior
  Beitrag No.1, eingetragen 2016-03-05

Ich kenne mich mit R auch noch nicht so gut aus, aber folgendes könnte funktionieren: \sourceon R which( apply( m, 1, function(r) isTRUE( all.equal(r, v) ) ) ) \sourceoff apply(m , 1, fun) geht zeilenweise durch die Matrix m und liefert den Zeilenvektor an die Funktion fun. Wird als zweites Argument 2 gewählt, so geschieht das Ganze spaltenweise. Die Funktion fun ist hier eine lambda-Funktion, welche den formalen Parameter(vektor) r besitzt. Mit all.equal wird der Vergleich durchgeführt; man könnte es auch mit == oder identical machen, aber hier kann es aufgrund von Rundungsfehlern zu unerwarteten Ergebnissen kommen. all.equal besitzt einen Parameter tolerance, der standardmäßig auf 1.5e-8 gesetzt ist, und die erlaubte Abweichung angibt. Da nur im Erfolgsfall TRUE zurückgegeben wird und andernfalls eine Erklärung, wie der Unterschied zustande kommt, konvertiere ich mittels isTRUE in einen logischen Wert. Somit gibt apply für jede Zeile einen logischen Wert zurück. Damit wir stattdessen die Indices erhalten, welche TRUE liefern, wenden wir die Funktion which an. Bei einem oder mehreren erfolgreichen Vergleichen erhältst du einen entsprechend langen Vektor mit den gewünschten Zeilennummern; waren hingegen alle Vergleiche erfolglos, so liefert which einen leeren Vektor der Länge 0 zurück. Es ist aber gut möglich, dass es auch noch eleganter geht bzw. eine entsprechende Funktion existiert.


   Profil
Jessi2013 hat die Antworten auf ihre/seine Frage gesehen.

Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]