如何使用 SAS 将字符串拆分为两个变量

Posted

技术标签:

【中文标题】如何使用 SAS 将字符串拆分为两个变量【英文标题】:How to use SAS to split a string into two variables 【发布时间】:2013-12-28 15:25:50 【问题描述】:

    我有一个数据集如下:

    country
    United States, Seattle
    United Kingdom, London
    

如何将国家/地区拆分为 SAS 中的数据,例如:

    country                  city
    United States           Seattle
    United Kingdom          London

【问题讨论】:

顺便说一句,在谷歌上搜索这类问题的答案比在论坛上提问要快得多,也更有教育意义;) 另一方面,当更多的人在论坛上提出这些问题时,情况就会变得更加真实...... 【参考方案1】:

使用以逗号作为分隔符的函数 SCAN()。

data test;
  set test;
  city=scan(country,2,',');
  country=scan(country,1,',');
run;

【讨论】:

【参考方案2】:

另一个选项,INFILE magic(谷歌这个主题的论文术语);对于从一个字符串解析多个变量和/或处理带引号的字段很有用,这样使用scan 会更有效。

filename tempfile "c:\temp\test.txt";


data have;
input @1 country $50.;
datalines;
United States, Seattle
United Kingdom, London
;;;;
run;

data want;
set have;
infile tempfile dlm=',' dsd;
input @1 @@;
_infile_=country;
format newcountry city $50.;
input newcountry $ city $ @@;
run;

tempfile 可以是任何文件(或者您在运行中创建的文件,其中包含任何字符以避免过早的 EOF)。

【讨论】:

以上是关于如何使用 SAS 将字符串拆分为两个变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SAS 中获取一个数据集并将其拆分为两个

如何将字符串中的“\t”拆分为两个单独的字符“\”和“t”? (如何拆分转义序列?)[重复]

如何将一个 RDD 拆分为两个或多个 RDD?

您知道如何将字符串列表拆分为不同的变量吗?

如何在pyspark中将文件名拆分为两个字符串?

将字符串拆分为标记并将标记分成两个单独的数组