列名なしで複数のデータを挿入するにはどうすればよいですか?以下はJMPテーブルを作成するためのJSLです。
dt = 新しいテーブル( "フロアの例",
新しい列(「ユニットID」、文字、呼び名)、
新しい列( "Data1"、数値、連続、フォーマット( "Best", 12 ) )、
新しい列( "Data2"、数値、連続、フォーマット( "Best", 12 ) )、
新しい列( "Data3"、数値、連続、フォーマット( "Best", 12 ) )、
);
dtdata={
{ユニットID = "A"、データ1 = 1.1、データ2 = 2.1、データ3 = 3.1}、
{ユニットID = "B"、データ1 = 1.2、データ2 = 2.2、データ3 = 3.2}、
{ユニットID = "C"、データ1 = 1.3、データ2 = 2.3、データ3 = 3.3}
};
dt << 行の追加( dtdata );
以下のように列名を定義せずに複数のデータを挿入したいと考えています。
dtdata={
{"A"、1.1、2.1、3.1}、
{"B"、1.2、2.2、3.2}、
{"C"、1.3、2.3、3.3}
};
上記は正しい答えではありません。 正しいJSL構文を教えてください。
Re: 列名なしで複数のデータを挿入するにはどうすればよいですか?この状況についてはドキュメントで説明されています。 「ヘルプ」 > 「書籍」 > 「スクリプト ガイド」を参照してください。 データテーブルに行を追加するさまざまな方法に関するセクションがあります。 このガイドには多くの例が含まれています。 以下にその抜粋を示します。
行の追加
行を追加するには、行追加メッセージを送信して行数を指定します。 指定することもできますどの行の後に新しい行を挿入するか。 引数には数値または式を指定できます数値として評価されます。
dt << Add Rows( 3 ); // add 3 rows to bottom of data table
dt << Add Rows( 3, 10 ); /* add 3 rows after the 10th row, moving the 11th and lower rows farther down */
行の追加のバリエーションでは、割り当てのリストを生成する引数を指定できます。
代入はカンマまたはセミコロンで区切ることができます。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Add Rows(
{:name = "Peter", :age = 14, :sex = "M", :height = 61, :weight = 124}
);
また
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
dt << Add Rows(
{:name = "Peter"; :age = 14; :sex = "M"; :height = 61; :weight = 124}
);
複数の引数を送信してリスト、またはリストのリストを生成することもできます。 次のスクリプト
さまざまな行の追加コマンドを使用してデータ テーブルを作成します。
dt = New Table( "Cities" );
dt << New Column( "xx", Numeric );
dt << New Column( "cc", Character, width( 12 ) );
dt << Add Rows( {xx = 12, cc = "Chicago"} ); // single list
dt << Add Rows( {xx = 13, cc = "New York"}, {xx = 14, cc = "Newark"} );
// several lists
dt << Add Rows(
{{xx = 15, cc = "San Francisco"}, {xx = Sqrt( 256 ), cc = "Oakland"}}
); // list of lists
a = {xx = 20, cc = "Miami"};
dt << Add Rows( a ); // evaluate as single list
b={{xx = 17, cc = "San Antonio"},{xx = 18, cc = "Houston"}, {xx = 19, cc =
"Dallas"}};
dt << Add Rows( b ); // evaluate as list of lists
Re: 列名なしで複数のデータを挿入するにはどうすればよいですか?ここでは、JMP 13 以降で動作するオプションをいくつか示します。
dt = New Table( "Floor Example",
New Column( "Unit ID", Character, Nominal ),
New Column( "Data1", Numeric, Continuous, Format( "Best", 12 ) ),
New Column( "Data2", Numeric, Continuous, Format( "Best", 12 ) ),
New Column( "Data3", Numeric, Continuous, Format( "Best", 12 ) ),
);
dt << add rows(nitems(dtdata));
dtdata={
{"A", 1.1, 2.1, 3.1},
{"B", 1.2, 2.2, 3.2},
{"C", 1.3, 2.3, 3.3}
};
For Each Row(dt, dt[row(),1::ncol(dt)]=dtdata[row()]);
//or create a function to append
addrows = function({listofrows, ctbl=current data table()}, {nr,nc, i},
nr = nrow(ctbl);
nc = ncol(ctbl);
for(i=1, i <= nitems(listofrows), i++,
ctbl << add rows(1);
ctbl[nr+i, 1::nc] = listofrows[i]
);
); //end function
//add the rows again to demo this function
addrows(dtdata);