Trova e inserisci le righe corrispondentiHo due colonne, ColonnaA e ColonnaB. È possibile inserire il valore corrispondente nella colonna B? I valori della colonna B provengono da questo elenco (ecco il codice dello snippet)
fileNames = Files In Directory( directory );
newlist = {};
For( i = 1, i <= N Items( fileNames ), i++,
Insert Into( newlist, fileNames[i] )
);
dt << New Column( "COlumn B", Character, Values( newlist ) );
| Colonna A | Colonna B |
| Apple.doc | |
| Arancione.doc | Arancione.doc |
| Uva.doc | Uva.doc |
| Fragola.doc | |
| Mango.doc | Mango.doc |
Combinazione e pulizia dei datiIngegneria della qualità e dei processiRi: Trova e inserisci le righe corrispondentiÈ qualcosa che ha sostituito Name() (in JMP16 credo). È necessario se sono presenti caratteri speciali specifici, ad esempio nei nomi delle colonne. Ecco un articolo della guida che lo menziona (ce n'è uno migliore, ma non riesco a trovarlo rapidamente) Guida allo scripting > Blocchi predefiniti JSL > Regole di sintassi JSL > Nomi .
L'ho usato perché non mi fido degli spazi nei nomi delle mie colonne anche se dovrebbero essere ok in JMP.
Ri: Trova e inserisci le righe corrispondentiGrazie a tutti per la risposta. Funziona bene.
Voglio solo sapere cosa significa n in
:"Column A"n
Ri: Trova e inserisci le righe corrispondentiUn'altra opzione, abbastanza vicina a quella @Georg fornito
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(5),
New Column("Column A",
Character,
"Nominal",
Set Values({"Apple.doc", "Orange.doc", "Grapes.doc", "Strawberry.doc", "Mango.doc"})
)
);
newlist = {"Orange.doc", "Grapes.doc", "Mango.doc"};
dt << New Column("Column B", Character, Nomimal,
<< Set Each Value(
If(Contains(newlist, :"Column A"n),
:"Column A"n
,
""
)
)
);Ri: Trova e inserisci le righe corrispondentiOltre a Join Tables di Jim, questa sarebbe un'altra soluzione:
Names Default To Here( 1 );
// Prepare Table with Column A
dt = New Table( "Column A",
Add Rows( 5 ),
New Column( "Column A", Character, "Nominal", Set Values( {"Apple.doc", "Orange.doc", "Grapes.doc", "Strawberry.doc", "Mango.doc"} ) )
);
// Get the list
newlist = {"Orange.doc", "Grapes.doc", "Mango.doc"};
dt << New Column( "Column B", Character );
// Check each row if value is part of the list
For Each Row( dt, If( Contains( newlist, :"Column A"n ), :"Column B"n = :"Column A"n ) );
modificato solo per renderlo più chiaro
Ri: Trova e inserisci le righe corrispondentiCrea la tua colonna B in una tabella dati separata e quindi utilizza
Tabelle=>Unisci
per unire le 2 tabelle insieme, facendo corrispondere la colonna A della tabella dati 1 con la colonna B della tabella dati 2.