Wie funktionieren Vorgänge mit zwei separaten Datentabellen?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Zum Beispiel, wenn ich teilen möchte Jeder Wert von Spalte 1 aus Datentabelle 1 von Jeder Wert von Spalte 2 aus Datentabelle 2 . Ich scheine dabei Probleme zu haben und frage mich, warum dieser Fehler auftritt: „Der bereichsbezogene Datentabellenzugriff erfordert eine Datentabellenspalte oder -variable{1} beim Zugriff oder bei der Auswertung von ‚dtbinsum:column‘, dtbinsum:column/*###“ */(Nrows ) /*###*/"
Der Teil meines Skripts sieht so aus:
//Start des Skripts
dt = currentdatatable();
dtbinsum = dt << Zusammenfassung(
Gruppe( :Datendatei, :Lot-ID, :SBIN ),
Freq( „Keine“),
Gewicht( „Keine“),
Format des Namens der Statistikspalte („Spalte“),
Link zur Originaldatentabelle (0)
);
dtbinsum<< Select Where( dtbinsum:sbin != 1 );
dtbinsum<< Zeilen löschen;
dtbinsum2 = dt << Zusammenfassung(
Gruppe( :Los-ID ),
N(:SBIN),
Freq( „Keine“),
Gewicht( „Keine“)
);
Ausbeute = {};
for(i=0, i
yield_temp = (dtbinsum:column(Nrows ))/(dtbinsum2:column(N(SBIN) ));
Einfügen in(yield,yield_temp);
);
Show(rendite);
//Ende des Skripts
Ich weiß, dass meine Methode wahrscheinlich nicht die effizienteste ist, ganz zu schweigen von dem angezeigten Fehler, aber hat jemand eine Lösung dafür?
Betreff: Wie funktionieren Vorgänge mit zwei separaten Datentabellen?So weit bin ich gekommen, bevor ich die folgende Fehlermeldung erhielt:
Name ungelöst: in Zugriff oder Auswertung von " , Name(" ")/*###*/
Code:
dt1 = Datentabelle ( „Haupttisch“ ) ;
dt2 = Datentabelle ( „REF-Tabelle aufgeteilt“ ) ;
Spalten = dt1 << Spaltennamen abrufen ( Zeichenfolge ) ;
für ( ich = 2 , ich <= N Spalten ( dt1 ) , ich ++,
one_column = Spalten [ ich ] ;
vals = ( Spalte ( dt1 , one_column ) << getValues )
( Spalte ( dt2 , one_column ) << getValues ) ;
dt1 << Neue Spalte ( one_column , Numerisch , Werte ( vals )) ;
) ;
Das Skript schafft es, eine Schleife in der Schleife durchzuführen und so eine Spalte mit korrekten Werten zu erstellen.
Betreff: Wie funktionieren Vorgänge mit zwei separaten Datentabellen?Könnten Sie mir Vorschläge machen, wie ich Ihre Formel so ändere, dass sie in einer for-Schleife funktioniert?
Es sollte das Gleiche tun wie Ihr Skript, aber für alle Spalten sollte der Name der neuen Tabelle die Überschrift der Spalte „Aquiered +“ sein Quotient
dt1 = Datentabelle („Haupttabelle“);
dt2 = Datentabelle („Ref-Tabelle“);
Spalten = dt << Spaltennamen abrufen ( Zeichenfolge ) ;
for ( i = 2, i <= N cols (myTable), i++,
// Ich habe verschiedene Versionen eines Verweises auf die Spalten in meiner Haupttabelle ausprobiert, aber es funktioniert nicht
vals = ( Spalte ( dt1 , Spalte(i) ) << getValues )
( Spalte ( dt2 , Spalte (d. h ) ) << getValues ) ;
dt1 << Neue Spalte (Spalten , Numerisch , Kontinuierlich , Werte ( vals )) ;
);
BR
Anders
Betreff: Wie funktionieren Vorgänge mit zwei separaten Datentabellen?Vielen Dank, Ian. Nachdem Sie nun darauf hingewiesen haben, dass es sich um elementweise Operationen handelt, ergibt es jetzt sehr viel Sinn.
Betreff: Wie funktionieren Vorgänge mit zwei separaten Datentabellen?( Spalte ( dt1 , "Zähler" ) << getValues ) fügt die Werte aus der angegebenen Spalte in einen Zeilenvektor ein (der im Beispiel mit v1 identisch ist). ( Spalte ( dt2 , "Nenner" ) << getValues ) macht dasselbe mit der anderen Spalte (die eigentlich derselbe Zeilenvektor wie v2 ist). Dann ist die
Der Operator verlangt eine elementweise Division, d. h. dividiert das erste Element des ersten Vektors durch das erste Element des zweiten Vektors, um das erste Element des Ergebnisvektors zu erhalten (und so weiter für die anderen Elemente).
Schauen Sie sich den Abschnitt „Matrizen“ in Kapitel 7 von „Hilfe > Bücher > Skripthandbuch“ an.
Betreff: Wie funktionieren Vorgänge mit zwei separaten Datentabellen?Danke Ian, bei mir funktioniert es, aber kann ich dich speziell zu dieser Zeile fragen?
vals = ( Spalte ( dt1 , "Zähler" ) << getValues )
( Spalte ( dt2 , "Nenner" ) << getValues ) ;
^
Ich verstehe JSL so, dass Doppelpunkte dabei helfen, Spalten zu identifizieren. Wie funktioniert das, wenn es so verwendet wird?
Betreff: Wie funktionieren Vorgänge mit zwei separaten Datentabellen?Etwas in der Art vielleicht:
NamesDefaultToHere ( 1 ) ;
// Erstelle ein paar Tabellen
v1 = J ( 10 , 1 , RandomInteger ( 1 , 5 )) ;
v2 = J ( 10 , 1 , RandomInteger ( 1 , 5 )) ;
dt1 = NeueTabelle ( "Tabelle 1" , Neue Spalte ( "Zähler" , Numerisch , Ordinal , Werte ( v1 ))) ;
dt2 = NeueTabelle ( "Tabelle 2" , Neue Spalte ( "Nenner" , Numerisch , Ordinal , Werte ( v2 ))) ;
// Fügen Sie eine Quotientenspalte zu Tabelle 1 hinzu
Warten ( 3 ) ;
vals = ( Spalte ( dt1 , "Zähler" ) << getValues )
( Spalte ( dt2 , "Nenner" ) << getValues ) ;
dt1 << Neue Spalte ( "Quotient" , Numerisch , Kontinuierlich , Werte ( vals )) ;