你好,
我在拆分列並將其轉置為標題和值時遇到問題。 這裡需要幫助如何編寫代碼。
我的數據表有四列:項目、零件號、訂單號和數量。
我需要拆分訂單號並將其轉置為新列中的標題,並將拆分數量列轉置到相應的單元格。
我在這裡附上我的數據表和所需的結果供您參考。
我知道這可以通過使用 Tabulate () 來完成。 但我不想使用它,因為我需要我的結果數據表能夠鏈接到原始數據表以進行進一步處理。
</CODE></PRE><P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 999px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Capture.PNG" style="width: 999px;"><span class="lia-inline-image-display-wrapper" image-alt="Capture.PNG" style="width: 999px;"><img src="https://us.v-cdn.net/6038925/uploads/images/35536i8BFFBFE73DC658B5/Capture.PNG" role="button" title="Capture.PNG" alt="Capture.PNG" /></span></SPAN></SPAN></P><P> </P></LINGO-BODY><LINGO-LABS id="lingo-labs-415521" slang="en-US" mode="NONE"><LINGO-LABEL>數據混合和清理</LINGO-LABEL></LINGO-LABS><LINGO-SUB id="lingo-sub-415545" slang="en-US" mode="NONE">回复:拆分一列並將其轉置為標題</LINGO-SUB><LINGO-BODY id="lingo-body-415545" slang="en-US" mode="NONE"><P>謝謝吉姆</P><P>謝謝TS</P></LINGO-BODY><LINGO-SUB id="lingo-sub-415540" slang="en-US" mode="NONE">回复:拆分一列並將其轉置為標題</LINGO-SUB><LINGO-BODY id="lingo-body-415540" slang="en-US" mode="NONE"><P>你好,</P>
<P>我不確定我是否理解您的問題:如果您按“訂單號”對列數量進行簡單拆分並按“商品”和“零件號”進行分組,您會得到帖子中所示的結果,但缺少的值除外被編碼為“缺失”而不是“0”。</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Thierry_S_0-1630733524994.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="Thierry_S_0-1630733524994.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="Thierry_S_0-1630733524994.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/35539i906F34321961B54E/Thierry_S_0-1630733524994.png" role="button" title="Thierry_S_0-1630733524994.png" alt="Thierry_S_0-1630733524994.png" /></span></SPAN></SPAN></P>
<P>通過標準化屬性的簡單重新編碼,您可以將所有缺失值設置為零。</P>
<P>假設我不明白您最初的要求,您能否澄清該過程的哪一部分不適合您?</P>
<P>最好的,</P>
<P>TS</P></LINGO-BODY><LINGO-SUB id="lingo-sub-415536" slang="en-US" mode="NONE">回复:拆分一列並將其轉置為標題</LINGO-SUB><LINGO-BODY id="lingo-body-415536" slang="en-US" mode="NONE"><P>您想要的可以使用以下方法來完成</P>
<P>表格=>拆分</P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="txnelson_0-1630733183189.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="txnelson_0-1630733183189.png" style="width: 400px;"><span class="lia-inline-image-display-wrapper" image-alt="txnelson_0-1630733183189.png" style="width: 400px;"><img src="https://us.v-cdn.net/6038925/uploads/images/35537i8E626CF1FE4F430D/txnelson_0-1630733183189.png" role="button" title="txnelson_0-1630733183189.png" alt="txnelson_0-1630733183189.png" /></span></SPAN></SPAN></P>
<P> </P>
<P>下面是一個簡單的腳本,採用從 Split Platform 提供的 JSL,然後添加從 Recode 功能獲取的 JSL</P>
<PRE><CODE class=" language-jsl">Names Default To Here( 1 );
dt = Current Data Table();
// Get the column names that will need to recoded to 0 if missing
Summarize( dt, colnames = by( :Order Number ) );
// Do the simple split to transform the data table
dtSplit = dt << Split(
Split By( :Order Number ),
Split( :Quantity ),
Group( :Item, :Part Number ),
Sort by Column Property
);
// Loop across all split columns and recode missing values to zeros
For( i = 1, i <= N Items( colnames ), i++,
dtSplit << Begin Data Update;
dtSplit << Recode Column(
As Column( dtSplit, colnames[i] ),
{Map Value( _rcOrig, {., 0}, Unmatched( _rcNow ) )},
Update Properties( 1 ),
Target Column( As Column( dtSplit, colnames[i] ) )
);
dt << End Data Update;
);