<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: colonne égale à 0 in Discussions</title>
    <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696051#M88117</link>
    <description>&lt;P&gt;What do you wish to do with such columns?&lt;/P&gt;</description>
    <pubDate>Thu, 09 Nov 2023 09:17:57 GMT</pubDate>
    <dc:creator>jthi</dc:creator>
    <dc:date>2023-11-09T09:17:57Z</dc:date>
    <item>
      <title>colonne égale à 0</title>
      <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696030#M88116</link>
      <description>&lt;P&gt;Bonjour à tous,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Je cherche à réaliser des manipulations sur les colonnes lorsque la colonne ne contient pas que des valeurs égales à 0.&lt;BR /&gt;J’utilise le script ci-dessous mais j’obtiens une erreur.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hcarr01_0-1699519874496.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/58483i51CC4D21AB0A1029/image-size/medium?v=v2&amp;amp;px=400" role="button" title="hcarr01_0-1699519874496.png" alt="hcarr01_0-1699519874496.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here (1);

dt = current data table();

H = Col Sum(:"ATT2"n);
//show(H);

If(H != 0,
	dt &amp;lt;&amp;lt; Select Where (:"ATT2"n == 1) &amp;lt;&amp;lt; Subset (Selected Rows( 1 ), Selected columns only( 0 ) );
	Close(dt,NoSave);
	dt1 = current data table();
	,
	continue()
);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;FONT&gt;Avez-vous une idée de comment contourner ce problème ?&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT&gt;Merci pour votre aide !&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2023 08:54:20 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696030#M88116</guid>
      <dc:creator>hcarr01</dc:creator>
      <dc:date>2023-11-09T08:54:20Z</dc:date>
    </item>
    <item>
      <title>Re: colonne égale à 0</title>
      <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696051#M88117</link>
      <description>&lt;P&gt;What do you wish to do with such columns?&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2023 09:17:57 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696051#M88117</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2023-11-09T09:17:57Z</dc:date>
    </item>
    <item>
      <title>Re: colonne égale à 0</title>
      <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696057#M88118</link>
      <description>&lt;P&gt;Il s’agit d’un script que j’exécute chaque semaine, donc je peux pas prévoir si les colonnes seront égales à 0 ou pas. C’est pour cela que je fais ce test. Mon but est lorsque la colonne est différente de 0, je me permets d’extraire les lignes égale à 1 pour la colonne séléctionnée. Ensuite, je réalise différentes manipulations, jointures, calcul...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Il s’agit ici d’une base de données test pour vous montrer l’idée...&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2023 09:24:35 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696057#M88118</guid>
      <dc:creator>hcarr01</dc:creator>
      <dc:date>2023-11-09T09:24:35Z</dc:date>
    </item>
    <item>
      <title>Re: colonne égale à 0</title>
      <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696058#M88119</link>
      <description>&lt;P&gt;I'm not sure what is the problem or what you are doing, but I would first build a list of columns which contain non zero values (how do you deal with missing values? do you care about non zero values OR sum of zero?). And then based on that list I would do some actions. I use Loc()&amp;nbsp; here with datatable subscripting, but there are other methods for finding such columns&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names Default To Here(1);

dt = New Table("TEST",
	Add Rows(9),
	Compress File When Saved(1),
	New Column("ATT1", Numeric, "Continuous", Format("Best", 12), Set Values([1, 0, 0, 0, 1, 0, 0, 1, 1])),
	New Column("ATT2", Numeric, "Continuous", Format("Best", 12), Set Values([0, 0, 0, 0, 0, 0, 0, 0, 0])),
	New Column("ATT3", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 0, 0, 1, 1, 1, 1, 0])),
	New Column("ATT4", Numeric, "Continuous", Format("Best", 12), Set Values([1, 1, 0, 0, -1, -1, 0, 0, 0])),
	New Column("ATT5", Numeric, "Continuous", Format("Best", 12), Set Values([0, 0, 0, ., 0, 0, 0, 0, .])),	
);

colnames = dt &amp;lt;&amp;lt; Get Column Names("String");

// Option 1 - Loop using Loc and datatable subscripting
nonzerocols1 = {};
For Each({colname}, colnames,
	nonzeros = Loc(dt[0, colname]);
	If(N Items(nonzeros) &amp;gt; 0,
		Insert Into(nonzerocols1, colname);
	);
);
show(nonzerocols1);

// Option 2 - Matrix calculations
m_dt = dt[0,0]; // Could also use dt &amp;lt;&amp;lt; Get As Matrix; instead of dt[0,0];
non_zero_col_idx = Loc(V Sum(m_dt != 0)); // single-liner for col indices
nonzerocols2 = colnames[non_zero_col_idx];
show(nonzerocols2);

// Option 3 - Using &amp;lt;&amp;lt; Get Values
nonzerocols3 = {};
For Each({colname}, colnames,
	vals = Column(dt, colname) &amp;lt;&amp;lt; get values;
	nonzeros = Sum(vals != 0);
	If(nonzeros &amp;gt; 0,
		Insert Into(nonzerocols3, colname);
	);
);
show(nonzerocols3);

// Option 4 - Get Rows Where
nonzerocols4 = {};
For Each({colname}, colnames,
	vals = dt &amp;lt;&amp;lt; Get Rows Where(Column(colname) != 0); // This will also capture missing values
	If(N Items(vals) &amp;gt; 0,
		Insert Into(nonzerocols4, colname);
	);
);
show(nonzerocols4);

// Perform some actions using nonzerocol list
stop();

nonzerocol = nonzerocols[1];
nonzerorows = Loc(dt[0, nonzerocol]);
dt1 = dt &amp;lt;&amp;lt; Subset(Rows(nonzerorows), Selected Columns Only(0), Output table("NONZERO BY " || nonzerocol));&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Edit: Added other options of getting non-zero value columns (most of these will "consider" missing value as zero value)&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2023 09:48:13 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696058#M88119</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2023-11-09T09:48:13Z</dc:date>
    </item>
    <item>
      <title>Re: colonne égale à 0</title>
      <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696061#M88121</link>
      <description>&lt;P&gt;Merci pour votre réponse !&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;C’est pas réellement ce que je cherche.&lt;BR /&gt;&lt;FONT&gt;Concrètement, j’étudie vraiment colonne par colonne. J’ai différentes boucles if en étudiant à chaque fois une colonne précise avant de passer à l’étude de l’autre colonne.&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Il ne peut pas y avoir de valeurs manquantes, les valeurs sont 0 ou 1. En théorie, je me soucie d’extraire juste les lignes, dont la valeur vaut 1 pour une colonne sélectionnée. J’ai utilisé la somme pour construire une boucle if dans le sens où si ma somme vaut zéro, cela veut dire que toutes mes valeurs sont nulles et je n’ai rien à extraire de la colonne.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-jsl"&gt;Names default To Here(1);
dt = current data table();


col = Filter Each( {col_name}, dt &amp;lt;&amp;lt; Get Column Names( "String", Continuous ),
	Starts With( col_name, "ATT2" )
);


nonzeros = Loc(dt[0, col]);
If(N Items(nonzeros) != N rows(dt),
	dt &amp;lt;&amp;lt; Select Where (:"ATT2"n == 1) &amp;lt;&amp;lt; Subset (Selected Rows( 1 ), Selected columns only( 0 ) );
	Close(dt,NoSave);
	dt1 = current data table();
	,
	continue()	
);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;En m’inspirant de votre script, j’ai écris le script ci-dessus, mais j’obtiens la même erreur.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hcarr01_0-1699523328986.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/58488iE1D7E732C8F0001B/image-size/medium?v=v2&amp;amp;px=400" role="button" title="hcarr01_0-1699523328986.png" alt="hcarr01_0-1699523328986.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2023 09:50:57 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696061#M88121</guid>
      <dc:creator>hcarr01</dc:creator>
      <dc:date>2023-11-09T09:50:57Z</dc:date>
    </item>
    <item>
      <title>Re: colonne égale à 0</title>
      <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696064#M88124</link>
      <description>&lt;P&gt;I don't understand the error message as it isn't in english. Do you have data table open? Are you using JMP16+?&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2023 09:56:13 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696064#M88124</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2023-11-09T09:56:13Z</dc:date>
    </item>
    <item>
      <title>Re: colonne égale à 0</title>
      <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696068#M88126</link>
      <description>&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hcarr01_0-1699524810569.png" style="width: 400px;"&gt;&lt;img src="https://community.jmp.com/t5/image/serverpage/image-id/58489i7360DCBDCF451378/image-size/medium?v=v2&amp;amp;px=400" role="button" title="hcarr01_0-1699524810569.png" alt="hcarr01_0-1699524810569.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Oui, lorsque j’exécute le script, j’ai une base de données qui est ouverte.&lt;BR /&gt;Oui j’utilise JMP 17 (Pro).&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Peut-être existe-t-il un moyen en JSL de :&lt;BR /&gt;Si la colonne contient que des "0" continuer (fonction continue())&lt;BR /&gt;Sinon exécuter la suite du script...&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2023 10:49:44 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696068#M88126</guid>
      <dc:creator>hcarr01</dc:creator>
      <dc:date>2023-11-09T10:49:44Z</dc:date>
    </item>
    <item>
      <title>Re: colonne égale à 0</title>
      <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696075#M88130</link>
      <description>&lt;P&gt;Ah.. Continue() should only be used with loops. Depending on what you wish to do, you might not even need the else statement (so remove , Continue()).&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2023 11:37:49 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696075#M88130</guid>
      <dc:creator>jthi</dc:creator>
      <dc:date>2023-11-09T11:37:49Z</dc:date>
    </item>
    <item>
      <title>Re: colonne égale à 0</title>
      <link>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696146#M88134</link>
      <description>&lt;P&gt;Merci pour votre réponse, juste en enlevant la fonction "continue()" cela a fonctionné directement !&lt;/P&gt;</description>
      <pubDate>Thu, 09 Nov 2023 15:09:54 GMT</pubDate>
      <guid>https://community.jmp.com/t5/Discussions/colonne-%C3%A9gale-%C3%A0-0/m-p/696146#M88134</guid>
      <dc:creator>hcarr01</dc:creator>
      <dc:date>2023-11-09T15:09:54Z</dc:date>
    </item>
  </channel>
</rss>

