列の位置に基づいて列の数式を作成しますか?<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
列名である文字列のリストがあります。データテーブルの列の位置(i)を確認してから、式(Column(i)+ Column(i + 1))を使用して新しい列を追加します。私のコードはこのようになります:
cols = dt <<列名を取得する(St
リング);
list = {"B"、"D"};
n = N項目(リスト)。
locate = {}:
(i = 1、i <= n、i ++、
見つける = Loc(dt、list ;
New Column( "New"、Formula(Column(locate) )+列(位置を特定する + 1)))
;
Loc()は行列を返し、Column()は数値しか評価できないため、問題があります。最終的なデータテーブルは次のようにします。
| A | B | C | D | E | F | 新しい | 新しい2 |
|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 5 | 9 |
| 1 | 2 | 3 | 4 | 5 | 6 | 5 | 9 |
| 1 | 2 | 3 | 4 | 5 | 6 | 5 | 9 |
| 1 | 2 | 3 | 4 | 5 | 6 | 5 | 9 |
誰かが私を手伝ってくれる?
再:列の位置に基づいて列の式を手伝ってくれる?ご協力ありがとうございました。ほんとうにありがとう。
再:列の位置に基づいて列の式を手伝ってくれる?依存列が削除されている場合、式列は当然機能しません。式で使用されている列を削除したい場合は、最初に列式を使用するポイントは何ですか?合計が終わった後で、列式がもたらす動的な利点に関心がない場合は、式を使用しないことをお勧めします(これにより、これがはるかに簡単になります)。
上の表でこれを試してください。
リスト = { "B" 、 "D" } ;
見つける = 経験値 ( Loc ( コルズ 、リスト [ 私 ] )[ 1 ] ) ;
にとって ( 私 = 1 、私 <= N個のアイテム ( リスト ) 、私 ++、
コルズ = dt << 列名を取得する ( ひも ) ;
コル = dt << 新しいコラム ( "新しい" 、数値 ) ;
各行について ( コル [] = カラム ( 見つける [] + カラム ( 見つける + 1 [] ) ;
dt << 列を削除 ( カラム ( 見つける ) 、カラム ( 見つける + 1 ) ) ;
コル << セット名 ( リスト [ 私 ] ) ;
) ;
再:列の位置に基づいて列の式を手伝ってくれる?どうもありがとうございます!このアプローチはとてもうまくいきます。
フォローアップの質問もあります。この新しいテーブルの列にいくつか変更を加えたいと思います。
| A | B | C | D | E | F | 新しい | 新しい2 |
|---|
1 | 2 | 3 | 4 | 5 | 6 | 5 | 9 |
| 1 | 2 | 3 | 4 | 5 | 6 | 5 | 9 |
| 1 | 2 | 3 | 4 | 5 | 6 | 5 | 9 |
"New"列と "New 2"列を作成するために合計された4列を削除し、list = {"B"、"D"}を使用して名前を変更する方法はありますか。
再:列の位置に基づいて列の式を手伝ってくれる?jslによって列変数を列式に入れるのは簡単ではありません。式は正確に最終式と同じでなければなりません。つまり、自動的に評価されるものはありません。トリックは、式(または文字列)を定義して操作してから、eval、parseなどの正しい組み合わせを使用することです。
以下はうまくいくように見える例です。それはその名前によって列を見つけて、それからそれが解析される名前を再び取得するよりそれは少し循環的です。ピュー!私はもっと簡単な手順を見つけることができませんでしたが、誰かがもっとエレガントな解決策のアイデアを持っているなら興味があります。
//テーブル例を作る
dt = 新しいテーブル ( "テスト" 、
行を追加 ( 3 ) 、
新しいコラム ( "A" 、数値 、連続的 、フォーマット ( "ベスト" 、 1 ) 、設定値 ( [ 1 、 1 、 1 ] ) ) 、
新しいコラム ( "B" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 2 、 2 、 2 ] ) ) 、
新しいコラム ( "C" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 3 、 3 、 3 ] ) ) 、
新しいコラム ( "D" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 4 、 4 、 4 ] ) ) 、
新しいコラム ( "E" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 5 、 5 、 5 ] ) ) 、
新しいコラム ( "F" 、数値 、連続的 、フォーマット ( "ベスト" 、 12年 ) 、設定値 ( [ 6 、 6 、 6 ] ) )
) ;
//ここからスクリプトが始まります
コルズ = dt << 列名を取得する ( ひも ) ;
リスト = { "B" 、 "D" } ;
//列exprを探します
見つける = 経験値 ( Loc ( コルズ 、リスト [ 私 ] )[ 1 ] ) ;
//式exprを持つ新しい列
f = 経験値 ( 新しいコラム ( "新しい" 、式 ( 経験値 ( 解析する ( カラム ( 見つける ) << 名前をつける ) )
+ 経験値 ( 解析する ( カラム ( 見つける + 1 ) << 名前をつける ) ) ) ) ) ;
//リストをループする
にとって ( 私 = 1 、私 <= N個のアイテム ( リスト ) 、私 ++、
評価 ( 評価エキス ( f ) )
) ;