从字符串中提取数字你好,
我想提取 [] 中包含的所有数字并将其存储在列表中。 有没有办法用jsl来实现这一点?
我想从列中提取数字并将其存储在列表中,该列表应如下所示:
箱= {“52”,“79”,“39 41 43”,“38 40 42”,“1”};
任何建议都会很有帮助。

谢谢
自动化和脚本编写消费者和市场研究回复:从字符串中提取数字这是另一种方法。 JMP 中有很多处理字符串、列表和数据列的功能!
Names Default to Here( 1 );'
// create sample
dt = New Table( "Sample",
New Column( "Values", "Character", "Nominal",
Values( { "", "", "[52]", "[79]", "[39 41 43]", "[38 40 42]", "", "", "", "[1]" } )
)
);
// use sample
val = :Values << Get Values;
// find
bins = List();
For( i = 1, i <= N Items( val ), i++,
If( val[i] != "",
Insert Into( bins,
Substitute( val[i],
"[", "",
"]", ""
);
);
);
);
Show( bins );回复:从字符串中提取数字谢谢吉姆:)
回复:从字符串中提取数字有几种不同的方法可以做到这一点。
您可以使用以下命令将“值”列的值放入列表中: <<获取值()消息到专栏。
您需要删除该列表中缺失的值。 通过使用以下命令查找数据表中丢失的行,可以很容易地做到这一点获取行Where() 。 然后从......中去除()函数将从列表中删除这些元素。
然后使用 For Each() 和 Word() 函数去掉方括号(即“[]”)。
dt = Data Table( "Sample.jmp" );
//locate the missing values
missings = dt << get rows where( Is Missing( :values ) );
//get a list of the Values column
lst = :Values << get values;
//Remove the missings from the list
Remove From( lst, As List( missings ) );
//strip the square brackets
For Each( {item, i}, lst, lst[i] = Word( 1, item, "[]" ) );
您还可以在数据表中执行所有这些操作,方法是使用 Word() 函数添加新的公式列以去掉方括号,然后从新列中获取值。
dt=Data Table("Sample.jmp");
new_col = dt << New Column( "New Values", Character,
formula( Word( 1, :Values, "[]" ) )
);
lst = (new_col << get values)[dt <<
get rows where( !Is Missing( :New Values ) )];
Word() 函数是我最喜欢的:如果您只学习一种公式编辑器函数,Word() 就是其中之一
回复:从字符串中提取数字这是一个简单的示例,它读取示例数据表并生成包含值的列表
x = {"52", "79", "39", "41", "43", "38", "40", "42", "1"};
Names Default To Here( 1 );
dt = current data table();
x = {};
For Each Row(
If( :values != "",
y = Eval( Parse( :values ) );
For Each( {value}, y, Insert Into( x, Char( value ) ) );
)
);
Show( x );