こんにちは、私が時々このような何かを変えるテーブルを持っているなら:

しかし、別の日は次のようになります。

どういうわけか、日付とデータを除くすべての列を合計する新しい行を作成したいと思います
JSLでこれを行うための最良の方法は何ですか?
列名を取得してからデータと日付を削除しようとしましたが、各列の合計部分を実行する方法がわかりません
サマリーを使用してみましたが、変更されるたびに、a、b、r、xの合計になり、a、c、fになるので、これが可能かどうかはわかりません。
Summary(
Sum( :A ),
Sum( :B ),
Sum( :R ),
Sum( :X ),
Freq( "None" ),
Weight( "None" )
)
Summary(
Sum( :A ),
Sum( :C ),
Sum( :F ),
Freq( "None" ),
Weight( "None" )
)
たぶんあなたはここと同じような考えを使うことができます:
列名を指定せずに一連の列の要約を作成するにはどうすればよいですか?
Names Default To Here(1);
dt1 = New Table("Untitled1",
Add Rows(3),
Compress File When Saved(1),
New Column("data", Character, "Nominal", Set Values({"a", "b", "c"})),
New Column("date", Numeric, "Continuous", Format("Best", 12), Set Values([2021, 2021, 2021])),
New Column("a", Numeric, "Continuous", Format("Best", 12), Set Values([0, 50, 2])),
New Column("c", Numeric, "Continuous", Format("Best", 12), Set Values([1, 0, 0])),
New Column("f", Numeric, "Continuous", Format("Best", 12), Set Values([0, 0, 7]))
);
colname = dt1 << get column names(string);
colname = Substr(colname, 3); //remove data and date columns from list
summary_dt1 = dt1 << Summary(Sum(Eval(colname)), Freq("None"), Weight("None"));
summary_dt1 << Delete Columns("N Rows");
dt2 = New Table("Untitled2",
Add Rows(3),
Compress File When Saved(1),
New Column("data", Character, "Nominal", Set Values({"a", "b", "c"})),
New Column("date", Numeric, "Continuous", Format("Best", 12), Set Values([2021, 2021, 2021])),
New Column("a", Numeric, "Continuous", Format("Best", 12), Set Values([0, 50, 2])),
New Column("b", Numeric, "Continuous", Format("Best", 12), Set Values([1, 0, 0])),
New Column("r", Numeric, "Continuous", Format("Best", 12), Set Values([0, 0, 7])),
New Column("x", Numeric, "Continuous", Format("Best", 12), Set Values([2, 7, 1]))
);
colname = dt2 << get column names(string);
colname = Substr(colname, 3); //remove data and date columns from list
summary_dt2 = dt2 << Summary(Sum(Eval(colname)), Freq("None"), Weight("None"));
summary_dt2 << Delete Columns("N Rows");@jthi正解を提供しています。私が書いたスクリプトの多くで非常に役立つと思うわずかな変更があります。
ほとんどの場合、私が使用するデータテーブルは、あるアクセスから次の週のアクセスまで、列の同じ順序に従わないことがわかります。したがって、要約する列のリストをペアにする必要がある場合など。 私は次のコードを使用します。
colNamesNotToUse = {"DATA", "DATE"};
colname = dt << get column names( string );
For( i = N Items( colName ), i >= 1, i--,
If( Contains( colNamesNotToUse, Uppercase( colName[i] ) ),
Remove From( colName, i, 1 )
)
);