【发布时间】:2016-04-07 07:08:47
【问题描述】:
我有一列用逗号分隔不同人的姓名,例如,(全部在 1 个单元格中)Ben Lee、Paul Loy、Boy Lim。我想将每个名称分成不同的列。我将如何做? (在 SPSS 语法中)。
【问题讨论】:
-
目前正在试验 char.index 和 char.substr,还没有成功
标签: string spss text-extraction
我有一列用逗号分隔不同人的姓名,例如,(全部在 1 个单元格中)Ben Lee、Paul Loy、Boy Lim。我想将每个名称分成不同的列。我将如何做? (在 SPSS 语法中)。
【问题讨论】:
标签: string spss text-extraction
请参阅this thread 以及潜在的解决方案。即,归功于 David Marso 和 Jon Peck:
* 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)".
【讨论】:
do repeat TXTname="Ben Lee" "Paul Loy" "Boy Lim"/VRname=BenLee PaulLoy BoyLim.
compute VRname=index(OriginalColumnName, TXTname)>0.
end repeat.
如果有更多名称,您可能更喜欢使用标准变量名称,并在标签中添加实际名称:
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".
【讨论】: