PAGE TOP

index
列処理

項目 サンプル
整数に型変換したい(double -> int)
C1
1.0
2.4
3.5
-4.4
-5.5
   =>   
C1
1
2
3
-4
-5
整数に型変換したい(string -> int)
C1
1.0
+2.4
3.5
-4.4
0.55e01
abc
   =>   
C1
1
2
3
-4
0
0
小数に型変換したい(int -> double)
C1
1
2
3
-4
   =>   
C1
1.000
2.000
3.000
-4.000
小数に型変換したい(string -> double)
C1
1.0
+2.4
3.5
-4.4
0.55e01
abc
   =>   
C1
1.000
2.000
3.000
-4.000
5.500
0.000
文字列に型変換したい(int -> string)
C1
1
2
3
-4
   =>   
C1
1
2
3
-4
文字列に型変換したい(double -> string)
C1
1.0
2.4
3.5
-4.4
-5.5
   =>   
C1
1.000000
2.400000
3.500000
-4.400000
-5.500000
数列に整数をかけたい
C1iC2d
11.000
22.400
33.500
4-4.400
5-5.500
   =>   
C1iC2d
22.000
44.800
67.000
8-8.800
10-11.000
数列に小数をかけたい
C1iC2d
11.000
22.400
33.500
4-4.400
5-5.500
   =>   
A1A2
2.0002.000
4.0004.800
6.0007.000
8.000-8.800
10.000-11.000
数列に数列をかけ合わせたい
C1i
1
2
3
4
5
 x 
C2d
1.000
2.400
3.500
-4.400
-5.500
   =>   
C3d
1.000
4.800
10.500
-17.600
-27.500
2つの文字列をつなげたい
C1C2
a01b01
a02b02
a03b03
a04b04
   =>   
C3
a01-b01
a02-b02
a03-b03
a04-b04
文字列を区切り文字(,)で分けたい
秒数.Offset
2015/04/01 10:12:30
2015/04/01 10:12:31
2015/04/01 10:12:32
2015/04/01 10:12:33
   =>   
YYYY/MM/DDhh:mm:ss
2015/04/0110:12:30
2015/04/0110:12:31
2015/04/0110:12:32
2015/04/0110:12:33

整数に型変換したい(double -> int)

[結果]
C1
1.0
2.4
3.5
-4.4
-5.5
   =>   
C1
1
2
3
-4
-5
[VAPScript]
table("C1") = {1.0, 2.4, 3.5, -4.4, -5.5};
//
result = as.integer(table);
[解説]
as.integer() 関数で、小数から整数に型変換できます。
この際、小数点以下は切り捨てられます。


整数に型変換したい(string -> int)

[結果]
C1
1.0
+2.4
3.5
-4.4
0.55e01
abc
   =>   
C1
1
2
3
-4
0
0
[VAPScript]
table("C1") = {"1", "+2.4", "3.5", "-4.4", "0.55e01", "abc"};
//
result = as.integer(table);
[解説]
as.integer() 関数で、文字列から整数に型変換できます。
この際、数値として解釈できても小数点以下は切り捨てられます。 数値と解釈できないものは 0 に置き換えられます。
※exp形式(eによる桁表示)は数値として解釈できません。


小数に型変換したい(int -> double)

[結果]
C1
1
2
3
-4
   =>   
C1
1.000
2.000
3.000
-4.000
[VAPScript]
table("C1") = {1, 2, 3, -4};
//
result = as.real(table);
[別解]
result = table*1.0;
[解説]
as.real() 関数で、整数から小数に型変換できます。

別解として、整数列に 1.0 (小数値の1)をかけることで、小数に型変換できます。


小数に型変換したい(string -> double)

[結果]
C1
1.0
+2.4
3.5
-4.4
0.55e01
abc
   =>   
C1
1.000
2.000
3.000
-4.000
5.500
0.000
[VAPScript]
table("C1") = {"1", "+2.4", "3.5", "-4.4", "0.55e01", "abc"};
//
result = as.real(table);
[解説]
as.real() 関数で、文字列から小数に型変換できます。
この際、数値と解釈できないものは 0 に置き換えられます。


文字列に型変換したい(int -> string)

[結果]
C1
1
2
3
-4
   =>   
C1
1
2
3
-4
[VAPScript]
table("C1") = {1, 2, 3, -4};
//
result = as.string(table);
[解説]
as.string() 関数で、整数から文字列に型変換できます。


文字列に型変換したい(double -> string)

[結果]
C1
1.0
2.4
3.5
-4.4
-5.5
   =>   
C1
1.000000
2.400000
3.500000
-4.400000
-5.500000
[VAPScript]
table("C1") = {1.0, 2.4, 3.5, -4.4, -5.5};
//
result = as.string(table);
[解説]
as.string() 関数で、小数から文字列に型変換できます。
このとき、小数の表示値と文字列の表示値で異なる場合があります。
小数値は表示桁数の制限を受ける一方、文字列は有効桁数そのままに表示されます。


数列に整数をかけたい

[結果]
C1iC2d
11.000
22.400
33.500
4-4.400
5-5.500
   =>   
C1iC2d
22.000
44.800
67.000
8-8.800
10-11.000
[VAPScript]
c1("C1i") = {1:5};
c2("C2d") = {1.0, 2.4, 3.5, -4.4, -5.5};
table = cbind(c1,c2);
//
result = table*2;
[解説]
数列に整数値をかけると、それぞれの要素を整数値倍します。


数列に小数をかけたい

[結果]
C1iC2d
11.000
22.400
33.500
4-4.400
5-5.500
   =>   
A1A2
2.0002.000
4.0004.800
6.0007.000
8.000-8.800
10.000-11.000
[VAPScript]
c1("C1i") = {1:5};
c2("C2d") = {1.0, 2.4, 3.5, -4.4, -5.5};
table = cbind(c1,c2);
//
result = table*2.0;
[解説]
数列に小数値をかけると、それぞれの要素を小数値倍します。
また、数列が整数の場合は小数に型変換されます。


数列に数列をかけ合わせたい

[結果]
C1i
1
2
3
4
5
 x 
C2d
1.000
2.400
3.500
-4.400
-5.500
   =>   
C3d
1.000
4.800
10.500
-17.600
-27.500
[VAPScript]
c1("C1i") = {1:5};
c2("C2d") = {1.0, 2.4, 3.5, -4.4, -5.5};
//
result("C3d") = c1 * c2;
[解説]
数列同士を掛け合わせると、同じindex行の要素を掛け合わせます。


2つの文字列をつなげたい

[結果]
C1C2
a01b01
a02b02
a03b03
a04b04
   =>   
C3
a01-b01
a02-b02
a03-b03
a04-b04
[VAPScript]
N = 4;
c1("C1") = format_str("a%02d", {1:N});
c2("C2") = format_str("b%02d", {1:N});
table = cbind(c1,c2);
//
result("C3") = paste(table("C1"),"-",table("C2"));
[解説]
文字列の列同士を結合して、列を作成するには、paste()関数を用います。

ここでは、tableテーブルのC1列とC2列を "-"で結合して新たなC3列を作成します。


文字列を区切り文字(,)で分けたい

[結果]
秒数.Offset
2015/04/01 10:12:30
2015/04/01 10:12:31
2015/04/01 10:12:32
2015/04/01 10:12:33
   =>   
YYYY/MM/DDhh:mm:ss
2015/04/0110:12:30
2015/04/0110:12:31
2015/04/0110:12:32
2015/04/0110:12:33
[VAPScript]
dtfmt1="YYYY/MM/DD hh:mm:ss";
dtfmt2="yyyy/MM/dd HH:mm:ss";
N = 4;
sN = as.string(N);
// 現時刻
dts("now") = now(dtfmt1);
// N 秒後の時刻
c1 = {};
for (i in {1:N}) {
    c1 = rbind(c1, date_proc_offset(dts,dtfmt2,i,"秒数"));
}
//
r = split.str(c1," ","");
result("YYYY/MM/DD","hh:mm:ss") = cbind(r(1),r(2));
[解説]
文字列の分離して、複数の列を作成するには、split.str()関数を用います。

ここでは 空白(" ")を区切り文字として、分割を行います。