需要建議為這樣做的ID添加表列的最佳方法....<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />基本上我有這個原始表:
| A欄 | B欄 | A欄 | B欄 |
| 一個 | Ë | 一世 | 米 |
| b | F | Ĵ | ñ |
| C | G | ķ | Ø |
| d | H | 升 | p |
現在我要做的是創建另一個帶有“new column ID”的表,看起來像這樣
| 新列ID | A欄 | B欄 | A欄 | B欄 |
| 1 | 一個 | Ë | 一世 | 米 |
| 1 | b | F | Ĵ | ñ |
| 1 | C | G | ķ | Ø |
| 1 | d | H | 升 | p |
| 2 | 一個 | Ë | 一世 | 米 |
| 2 | b | F | Ĵ | ñ |
| 2 | C | G | ķ | Ø |
| 2 | d | H | 升 | p |
| 3 | 一個 | Ë | 一世 | 米 |
| 3 | b | F | Ĵ | ñ |
| 3 | C | G | ķ | Ø |
| 3 | d | H | 升 | p |
| X | 一個 | Ë | 一世 | 米 |
| X | b | F | Ĵ | ñ |
| X | C | G | ķ | Ø |
| X | d | H | 升 | p |
我現在想到的是通過創建子集來克隆原始表。在這個子集上,我添加了具有特定值的“新列ID”(所有行都相同)。我重複相同的過程,根據需要創建盡可能多的子集(每個子集添加一個“新列ID”)。完成後,我可以將所有子集連接到一個表中。
我想知道你是否有更好的想法可以分享。
Re:需要建議最好的方法來為這個ID添加表列....@Ian和@MS感謝您的好建議。在我目前的劇本中,我將@Ian中的這個建議(來自@MS的混合)納入其中。
Re:需要建議最好的方法來為這個ID添加表列....像往常一樣,簡潔是一種美德!
我非常喜歡Marcus的方式,我用它做了一個功能以便以後重複使用:
NamesDefaultToHere ( 1 ) ;
// 樣本數據
DT1 = newtable的 ( “源數據” ,
NewColumn ( “一個” ,數字 ,連續 ,式 ( RandomNormal ())) ,
NewColumn ( “B” ,數字 ,連續 ,式 ( RandomInteger ( 1 , 10 ))) ,
AddRows ( 6 ) ;
) ;
//克隆表'dt''n'次。。。
cloneTable =
功能 ({ DT , ñ } , { 默認本地 } ,
表 = 重複 ({ DT } ,ñ - 1 ) ;
new_dt = DT << 串聯 ( 表 ) ;
new_dt << 的setName (( DT << 的getName ) || “克隆” || 燒焦 ( ñ ) || “時代” ) ;
idCol = new_dt << newColumn ( “ID” ,數字 ,公稱 ,式 ( 天花板 ( 行 () / NRow ( DT )))) ;
idCol << deleteFormula ;
new_dt << moveSelectedColumns ({ idCol } , “ToFirst” )
) ;
DT2 = cloneTable ( DT1 , 20 ) ;
Re:需要建議最好的方法來為這個ID添加表列....您不需要創建子集來連接多個副本。您可以在連接對話框中多次添加原始表。如果新ID是計數器,則可以使用列公式來生成ID。
一個jsl例子:
//堆棧d次n次
DT = 當前數據表 () ;
ñ = 10 ;
表 = 重複 ({ DT } , ñ - 1 ) ;
new_dt = DT << 串聯 ( 表 ) ;
new_dt << 新欄目 ( “新列ID” ,數字 ,式 ( 天花板 ( 行 () / 4 ))) ;
Re:需要建議最好的方法來為這個ID添加表列....請找一個替代方案,但我不確定是否可以說它“更好”:
NamesDefaultToHere ( 1 ) ;
//示例(數字!)數據
DT1 = newtable的 ( “源數據” ,
NewColumn ( “一個” ,數字 ,連續 ,式 ( RandomNormal ())) ,
NewColumn ( “B” ,數字 ,連續 ,式 ( RandomInteger ( 1 , 10 ))) ,
AddRows ( 6 ) ;
) ;
//在dt1'n1'次中克隆數據
N1 = 2 ;
N2 = NRow ( DT1 ) ;
資源 = DT1 << getAllColumnsAsMatrix ;
目的地 = [] ;
對於 ( 一世 = 1 ,一世 <= 2 ,一世 ++,目的地 = VConcat ( 目的地 ,資源 )) ;
//將ID列作為向量
ID = 升序 ( 重複 (( 1 :: N1 ) ` N2 )) ;
//組裝決賽桌
COLS = 插入 ( DT1 << getColumnNames ( 串 ) , “ID” , 1 ) ;
DT2 = 非穩態 ( ID || 目的地 , << COLUMNNAMES ( COLS )) ;
DT2 << 的setName (( DT1 << 的getName ) || “克隆” || 燒焦 ( N1 ) || “時代” ) ;
如果數據不是全數字,則“將所有列作為矩陣”仍然有效,但是在組裝dt2時,還有另外的工作要弄清楚如何將值重新映射回Character。