안녕,
선택하고 싶은 열이 너무 많은데 모든 항목을 입력하여 새로운 하위 집합을 만들고 싶지는 않은 문제가 있습니다.
내가 가진 것은 모두 같은 문자열로 시작하는 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에게 감사합니다!
그리고 그것은 멋진 블로그 Dave입니다. 링크 주셔서 감사합니다!
이 코드는 트릭을 수행합니다.멋진 블로그 Dave, btw!
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) )
);