我知道以下腳本是不正確的:
a = {"a", "b", "b"};
b = [1, 2, 3];
c = [4, 5, 6];
New Table( "SQL Results",
New Column( "a", character, set values( a ) ),
New Column( "b", formula( If( :a == "a", set values( b ), set values( c ) ) ) )
);
我如何更改它以使輸出:
一個 1
乙5
乙6
所以第一行檢查第 1 列是否為“a”,是則使用 b[1];第二行檢查第 1 列是否為“a”,否則使用 c[2];第三行檢查第 1 列是否為“a”,否則使用 c[3]。
謝謝你!
以下是如何做你想做的事。請注意,JMP 在引用矩陣 b 的公式中存在問題,因為該公式被解釋為引用列 b。這就是為什麼我將列名稱更改為 b2。
Names Default To Here( 1 );
a = {"a", "b", "b"};
b = [1, 2, 3];
c = [4, 5, 6];
dt = New Table( "SQL Results",
New Column( "a", character, set values( a ) )
);
dt << New Column( "b2",
formula(
If( :a == "a",
b[Row()],
c[Row()]
);
)
);
為了進一步說明作用域問題,如果您確實需要將該列命名為“b”,那麼可以指定here:b的完整作用域名稱(“here”來自 Names Default to Here( 1 ) )
Names Default To Here( 1 );
a = {"a", "b", "b"};
b = [1, 2, 3];
c = [4, 5, 6];
dt = New Table( "SQL Results",
New Column( "a", character, set values( a ) )
);
dt << New Column( "b",
formula(
If( :a == "a",
here:b[Row()],
c[Row()]
);
)
);