<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我有一個由 stringlist={Albert,Bert,Cathy ,Daniel,Total} 組成的列表,它們是表中的列名
我想在同一個表中創建 4 個新列,新列名稱為 Albert Total、Bert Total、Cathy Total、Daniel Total,其中 Albert total = Albert/Total、Bert = Bert/Total 等的公式
列名 albert、bert、cathy、daniel 可以是可變的,但列名 total 始終相同。
這是我嘗試過的:
對於(i=1,i<=nitems(字符串列表),i++,
dt<<新列名(eval(stringlist )||"總計",
公式((評估(解析(字符串列表))/:全部的)
)
)
);
我已經嘗試了 evallist、evalexpr、parse 的變體,但無濟於事……
涼爽的!我正在瀏覽解決方案,並使用下面的解決方案(以防其他人好奇) - 你的更好,因為它不依賴於列位置......
nlist=ncols(dt)
cols=dt<<獲取列名;
totals=column("total")<<獲取矩陣;
對於(i=1,i<=nlist-1,i++,
newcolexpr=表達式(
dt<< 新列(字符(列)||"_Total",numeric,formula(expr(cols ))/表達式(總計))));
評估(評估表達式(newcolexpr));
)
);
這將達到目的:
dt =新表( “無標題” ,添加行( 5個) ,
新專欄( “阿爾伯特” ,數字,
連續的,格式( “最好的” , 12 ) ,設置值( [ 1個, 2個, 3個, 4個, 5個] ) ) ,
新建專欄( “伯特” ,數字,連續的,格式( “最好的” , 12 ) ,
設置值( [ 6個, 7 , 8個, 9 , 10 ] )) ,
新建專欄( “凱茜” ,數字,連續的,格式( “最好的” , 12 ) ,
設置值( [ 11 , 12 , 13 , 14 , 15 ] )) ,
新建專欄( “丹尼爾” ,數字,連續的,格式( “最好的” , 12 ) ,
設置值( [ 16 , 17 , 18 , 19 , 20 ] )) ,
新建專欄( “全部的” ,數字,連續的,格式( “最好的” , 12 ) ,
設置值( [ 23 , 43 , 222 , 32 , 444 ] )) ,
) ;
字符串列表= dt <<獲取列名(細繩) ;
為了(我= 1個,我<= N 項(字符串列表) ,我++,
one_col =字符串列表[我] ;
如果( one_col != “全部的” ,
新列= one_col || “ 全部的” ;
col_string = “dt << 新列(new_col,公式(:” || one_col || “ / :全部的))” ;
評估(解析( col_string )) ;
) ;
) ;