你好,
我在拆分列并将其转置为标题和值时遇到问题。 这里需要帮助如何编写代码。
我的数据表有四列:项目、零件号、订单号和数量。
我需要拆分订单号并将其转置为新列中的标题,并将拆分数量列转置到相应的单元格。
我在这里附上我的数据表和所需的结果供您参考。
我知道这可以通过使用 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;
);