String 字符串提取

String 字符串提取,string,spss,text-extraction,String,Spss,Text Extraction,我有一列不同的人的名字用逗号隔开,例如,(全部在一个单元格中)Ben Lee,Paul Loy,Boy Lim。我想把每个名字分成不同的列。我该怎么做?(使用SPSS语法) 如果有更多的名称,您可能更愿意使用标准变量名称,并在标签中添加实际名称: do repeat TXTname="Ben Lee" "Paul Loy" "Boy Lim"/VRname=Name01 to Name03. compute VRname=index(OriginalColumnName, TXTname)>

我有一列不同的人的名字用逗号隔开,例如,(全部在一个单元格中)Ben Lee,Paul Loy,Boy Lim。我想把每个名字分成不同的列。我该怎么做?(使用SPSS语法)

如果有更多的名称,您可能更愿意使用标准变量名称,并在标签中添加实际名称:

do repeat TXTname="Ben Lee" "Paul Loy" "Boy Lim"/VRname=Name01 to Name03.
compute VRname=index(OriginalColumnName, TXTname)>0.
end repeat.
variable labels 
Name01 "Ben Lee"
Name02 "Paul Loy"
Name03 "Boy Lim".
请参阅可能的解决方案。也就是说,大卫·马索和乔恩·佩克:

 * General Parser *. 
DATA LIST / X 1-80 (A). 
BEGIN DATA 11-0101-423-7384 
END DATA. 

VECTOR NUMS(10). 
COMPUTE #0=0. 
LOOP. 
COMPUTE #1=INDEX(X,'-'). 
COMPUTE #0=#0+1. 
IF #1>0 NUMS(#0)=NUMBER(SUBSTR(X,1,#1-1),F8). 
COMPUTE X=SUBSTR(X,#1+1). 
END LOOP IF #1=0. 
COMPUTE NUMS(#0)=NUMBER(X,F8). 
MATCH FILES FILE * / DROP X. 
LIST. 
或者是python解决方案:

data list free /x(a13). 
begin data. 
1,13,5,6,99,8 
end data. 
dataset name data. 
begin program. 
def split(v): 
  return v.split(',') 
end program. 

spssinc trans result = v1 to v6 
/formula "split(x)". 

目前正在试验char.index和char.substr,还没有成功
data list free /x(a13). 
begin data. 
1,13,5,6,99,8 
end data. 
dataset name data. 
begin program. 
def split(v): 
  return v.split(',') 
end program. 

spssinc trans result = v1 to v6 
/formula "split(x)".