やあ、
選択したい列がたくさんあるのに、そのすべてを入力して新しいサブセットを作成したくないという問題が発生しています。
私が持っているのは、すべて同じ文字列で始まる 200 列です。 ループまたはコマンドを使用してこれらの列を選択できる方法があるかどうか疑問に思っていました。
次の行を使用してみました:
cols = dt << Get Column Names(Starts With("Year"));
ただし、すべての列名を取得するだけで、「年」で始まらない、または名前に「年」が含まれる列がいくつかあります。 現在、必要な列の新しいサブセットを作成しています。
dt2 = dt << Subset(
All rows,
columns(
:Time,
:Day,
:Name("Year 1"),
:Name("Year 2"),
:Name("Year 3"),
.
.
.
etc.
),
output table name("All Years")
);
テーブルには他にも多くの列がありますが、これらを分離したいだけです。 助けてください!
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />PMroz、ありがとう、うまくいきました!
それは素晴らしいブログですね、デイブ、リンクをありがとう!
このコードはうまくいきます。デイブ、素敵なブログですね!
dt = New Table( "Year Example",
Add Rows( 3 ),
New Column( "ABC", Numeric, Continuous, Format( "Best", 12 ), Set Values( [1, 2, 3] ) ),
New Column( "DEF", Numeric, Continuous, Format( "Best", 12 ), Set Values( [4, 5, 6] ) ),
New Column( "Year 1", Numeric, Continuous, Format( "Best", 12 ), Set Values( [7, 8, 9] ) ),
New Column( "Year 2", Numeric, Continuous, Format( "Best", 12 ), Set Values( [10, 11, 12] ) ),
New Column( "Year 3", Numeric, Continuous, Format( "Best", 12 ), Set Values( [13, 14, 15] ) )
);
col_list = dt << get column names(string);
for (i = nitems(col_list), i > 0, i--,
if (!contains(col_list[i], "Year"),
remove from(col_list, i);
);
);
dt << Subset(
Output Table( "Year Subset" ),
All rows,
columns( eval(col_list) )
);